-
Ubuntu 8.10 Server安装步骤及web服务配置
普通类 -
- 支持
- 批判
- 提问
- 解释
- 补充
- 删除
-
-
0、目的和假定
目的是要配置一个基于 Ubuntu Linux 的 web 服务器。需要提供 HTML、JSP、Socket 服务。
假定均以 root 登录系统,如果不是 root,部分命令需要加上 sudo 命令前缀。-
1、系统安装
1.1 基本系统
Ubuntu 真的是个非常好的 Linux 实现,安装非常简便,手动安装过 Windows NT/XP/2000/2003 的话,会发现过程没太大区别。
1.2 随机组件
因为要做 web 服务,所以在选择安装服务组件时,最好选中 LAMP 组件自动安装部署,我在另一台机器上尝试了手工安装部署 LAMP,要麻烦很多。
可以装上 OpenSSH,之后通过远程管理服务器非常方便。
别的组件根据需要选择安装。-
2、系统配置
2.1 网卡配置
提供网络服务,是 Server 的主要存在意义,所以第一步是要保证接入网络。
系统安装过程中有机会配置网卡,顺利的话,www.britepic.org装好后即可正常接入。若要修改配置,或是使用了另装的驱动,需要手工配置网卡。
方法是用修改 /etc/network/interfaces 文件(可用 vi 或 nano 等编辑器,下同)。
# 第一块网卡配置
auto eth0
iface eth0 inet static
address 192.168.0.80
netmask 255.255.255.0
gateway 192.168.0.1
以上是静态 IP 的情况,如果是动态获得地址,只需将 static 改为 dhcp,且无需下面的参数。
没有 VPN 的情况下,原来的 network、broadcast、dn-nameservers 都可以注释掉。
2.2 系统升级
安装完成后的 Ubuntu 已经可以稳定运行,几乎不需要任何配置。但应该保持系统内核及外围补丁的及时更新。可以用 apt-get update 检测升级各项补丁。
(系统默认的源(apt sources)有可能比较慢,根据网络接入情况,可以换上速度较快的源。一开始用 cn99 的源,首次 udpate 花了近 5 小时,之后换了上海交大的网通源,速度还将就。)
2.3 其他设备
没有了。text-based 界面,终端的好处啊,显卡声卡之类杂七杂八的都不用去管了。USB 标准统一,基本上都能由系统自动驱动。
SCSI、RAID 这些,没有环境,没试过单独配置。
2.4 默认语言
后悔装了中文版,既然是终端模式,又何必要中文...反而让许多命令提示显示成了乱码。解决方法如下:
a. 安装命令行中文支持
网上提到个 zhcon,但经测试其目前版本在 8.10 下无法正常工作,实际上它自己也说明了暂时只支持到 8.04。
b. 修改默认语言为英文
#export LANG="en_US.UTF-8"
#export LANGUAGE="en_US:en"
这样所有的系统提示都是英文了,不过重启后会失效,要长期有效,需要修改 /etc/default/local,将这两行加到其中即可。
2.5 图形界面
用做服务器的话,实际上不需要配置 GUI,不过因为初装,对 Ubuntu 和 Linux 都不熟悉,所以还是装了个 gnome 协助管理。
服务器版配置 gnome 也很方便:
a) 安装:
#apt-get aptitude install Ubuntu-desktop
安装成功后便会自动登录到桌面了。
GUI 里确实可以更方便地进行很多操作,尤其是文件、目录、文本编辑的操作,这些在终端下都是
繁杂的工作。不过很多系统操作,还是要在终端下更方便进行,跟 Windows 不同,GUI 在
Server 上很多时候只起个辅助作用。
b) 取消 GUI 自动启动:
#update-rc.d -f gdm remove
重启后便不会自动进入桌面,此时可用 startx 启动桌面。
c) 恢复 GUI 自动启动:
#update-rc.d gdm defaults-
3、LAMP
3.1 神奇的缩写
全称 = Linux + Apache + MySQL + PHP/Perl/Python
缩写 = LAMP
全称 = 社会经济学
缩写 = xxx
...
3.2 配置
如果没有特别的要求,那这四个组件都不需要单独配置。此时用 http://localhost 已经可以打开 apache 的 It Works 页面。
3.3 MySQL 的管理
如果要用 phpMyAdmin 来管理 MySQL,那可以用 apt-get 安装,或用 wget 命令从网上下载,再 tar 解压到 /var/www/phpMyAdmin,之后需要一个简单的配置:
a. 复制配置文件:
#cd /var/www/phpMyAdmin
#cp phpMyAdmin/config.sample.inc.php config.inc.php
b. 修改配置文件:
$cfg[’blowfish_secret’] = ’’; /* 在此处填上 cookie 认证标识,随便填,不留空即可 */
保存后,在 http://localhost/phpMyAdmin 即可访问 pma 了,用安装时输入的 MySQL 口令即可进入管理。
如果只在服务器上操作,那就只能用 mysql 命令行了:
#mysql -uroot -p-
4、Java 环境
#apt-get install sun-java6-jre
#apt-get install sun-java6-jdk // 可选
如果安装 java6 以前的版本,安装后还需要设置 $JAVA_HOME、$CLASSPATH 环境变量,并加入到登录用户的 .bashrc 文件中。
经测试 java6 不需要手工声明,但不排除部分软件认死理的可能,所以也可以写进去,在此不赘述。-
5、tomcat
用 apt-get 安装好 tomcat,感觉 Linux 下的软件安装好后就像被炸弹炸飞的人体——分散得到处都是。
以下是初步的分析,可能有误:
/etc/tomcat6 - 全局配置
/usr/share/tomcat6/ - 程序主目录
/usr/share/tomcat6/conf/Catalina/localhost/ - 本机部署的 Catalina 配置
/var/lib/tomcat6/ - 工作主目录
/var/lib/tomcat6/webapps - (应用文件实际存放于此)
/var/lib/tomcat6/work - 动态工作目录(动态编译的 .jsp 存放于此)
5.1 添加管理用户
在 /etc/tomcat6 下是 tomcat 的全局配置,这里需要修改 tomcat-users.xml
a. 添加角色名
<role rolename="manager"/>
<role rolename="admin"/>
b. 添加用户
<user username="admin" password="admin" roles="admin,manager"/>
这样在重启 tomcat 后,才可以用 admin 登录到 manager 页面。
5.2 启动/停止命令
很多时候需要手动启动/停止 tomcat,/usr/share/tomcat6 是 tomcat 的主程序目录。
/usr/share/tomcat6/bin/startup.sh
/usr/share/tomcat6/bin/shutdown.sh
这两个便是启动和停止 tomcat 服务的脚本。
次次启动的话,此处有可能需要手动创建 conf 和 logs 目录:
#cd /usr/share/tomcat6
#mkdir conf
#mkdir logs
如果要非 root 身份启动 tomcat,则需要修改 logs 目录权限:
#chmod a+rw logs
没有意外的话,到这一步为止,这台 Server 就可以正常工作,提供所需的服务了。
如果接入互联网速度够快的话,安装配置这样一台 Server 大概只需要不超过 3 小时。-
6、疑难问题
这里只能记下我遇到过的问题,接触时间太短,后面的问题肯定还多,慢慢来。
6.1 系统
a. 只要安装盘或安装源没问题,安装就不会出问题,如果有问题,99% 都是硬件原因引起的(尤其是内存)。
b. 系统升级有可能失败,如果确定网络没问题,可以更换其他的 apt 源重试。
6.2 tomcat
a. 服务启动失败
根据提示判断原因,通常只有几种可能:
a1. 当前用户权限不足,无法创建运行期文件和目录
a2. Java 环境配置不正确,找不到 jre 或相关的 .jar 文件
a3. 指定的端口被占用(tomcat 默认为 8080)
确定了原因,对应的解决方法都比较简单。
b. 站点解析失败
这里有个特别的情况,比如我站点 sun-web.xml 里配置了 context-root 为 iGN,但实际发布的 .war 文件名为 iGN_JSP.war,这样部署到 tomcat6/webapps 下时,自动解包为 iGN_JSP,而在浏览器里的www.britepic.org实际 root 就成了 iGN_JSP,这一点跟在 Windows 平台上有差别。
c. Java 安全策略问题
之前做 Flash 的时候,在它的安全策略上折腾了近一周才搞定。没想到 Java 也有这一手,又被折磨了几天。
问题发生在 jsp 连接 MySQL 的时候,在 Class.forName() 后用 DriverManager.getConnection() 总是无法返回有效的连接,并且也没有抛出 SQLException 异常。
找资料的痛苦过程就不必细说了,最终找到一份 Sun 官方的关于安全策略的文档,终于参照解决。
Java 跟 Flash 在安全管理上是类似的做法,不同域间的互访,需要提供服务方指定对应的安全策略。Java 中通过 java.net.SocketPermission() 指定许可的主机和操作。
于是,修改 /var/cache/tomcat6/catalina.policy 文件,在其中加入如下权限设置:
// 26/dec/2008, scum
permission java.net.SocketPermission "localhost", "connect,resolve";
这样便允许了 localhost 的连接和解析请求,更详细的资料在 JDK 文档里也有。
修改后,重启 tomcat,jsp 终于连接上 MySQL 了...
* 关于 Java 安全策略,还有很多内容,未及细看,也许有更简便或更标准的解决方法,以后再说。-
7、结束语
现在服务器应用越来越多地偏向 Linux 了,个人感觉,二者各有所长,至少 Lin 还没到能完全替代 Win 的时候。
稳定性,Windows 2003 绝不比 Linux 差,而且易用性强,如果一个人在对二者同样不熟悉的情况下,要实现管理配置,Lin 当然是个噩梦。
安全性,这一点上,Lin 是更强些,除了本身内核的稳定外,潜在的攻击者对 Lin 的熟悉程度不如 Win 高也是个原因。
开放性,Win 是开放,允许所有合理的应用,但是内核的问题只有 MS 自己解决。Lin 是放开,允许所有合理的修改,在容易快速得到完善和进步的同时,也存在混乱和庞杂的隐患。而且个人感觉,所谓安全,一是只有不公开的部分,才是真正安全的;二是一切安全,都是暂时绝对的永远相对的。
更多的讨论就没有意义了,接下来还要配置一台服务器,打算用 Windows 2003,为什么不 Linux,因为 Linux 上暂时还不能完美地运行 .net 服务。 -
-
- 标签:
- 修改
- 配置
- 需要
- 启动
- tomcat
- 安装
- linux
- 学习元
- tomcat6
- mysql
- 系统
-
学习元评论 (0条)
聪明如你,不妨在这 发表你的看法与心得 ~