/*------------------------------------------------------------------------
写在前面:
我看到很多网友的提问都跟服务器配置有关,搭建一个可靠而又安全的应用开发服务器是WEB编程的基础,尤其对于在LINUX上进行JSP开发的朋友而言。
这篇文档是我多年服务器配置的结晶,发表前已历经本人N此修改(最后一次大的修改是在RH7.2刚刚发布之即,而后一来由于忙于开发二来由于没有发现错误,所以没有升级),文档于2001年底被天极网转载(http://www.yesky.com/20020206/217592.shtml),后经linuxbye.net,cnjsp.com等多个linux和JAVA社区转载,历经时间考验,至今未曾发现错误,各位尽可放心使用。
文档在web页面的显示效果不够理想,如果您希望得到本文档的PDF,或有任何意见建议,可邮件至roczhao@msn.com
文档较长分为多篇发布,这是第三篇,以下为正文:
-----------------------------------------------------------------------*/
配置步骤
Step 1 RedHat 7.2 install
我的建议:
1、 安装时为/home建立单独的分区,因为/home是用户数据的存放之地,本文档中也将软件的安装文件都放到这个目录下,所以,这样做当你下次重新安装系统的时候,可以保留该分区,数据也就得以保全;
2、 采用定制安装的方式并选中’Everything’选项,这样特别适合于初学者,否则后面的安装过程中可能会出现找不到某个包或某个命令的情况;但如果是配置Internet服务器,就应该只选择必需的包,做到尽量的精简才够安全;
3、 选择语言时,建议选中simplified chinese(P.R.CHINA)选项,这样,当你配置好服务器的时候,在程序代码中无需任何声明,中文将被支持而不会乱码;
4、 使用Gnome做为登陆管理器,使用KDE作为默认的Session,设置默认启动到X,这样做的目的是为了方便远程控制;
5、 IP: 192.168.1.2,这是我在本文档中使用的IP,这个可以自行设置。
6、 文档中我没有涉及到防火墙的设置,系统安装完成后你可以使用ntsysv或者chkconfig命令将iptables和ipchains两个服务禁用掉,否则会导致telnet和远程登陆等无法使用;
当然,如果您熟悉防火墙设置,可以自行处理。
--------------------------------------------------------------------------------------------
Step 2 X setup
##这一步完成后,重启服务器,然后你就可以使用Extra!X等远程控制软件以图形界面在微软平台上进行服务器配置,这样做的好处是可以同时控制服务器端和客户端,不必奔走在两台机器之间。如果你按照下面的设置不能进行远程控制,那么,很有可能你的防火墙策略不允许这样做,禁用掉iptables和ipchains就可以了。
vi /etc/X11/gdm/gdm.conf //启用远程控制
[xdmcp]
Enable=1
vi /etc/X11/gdm/Sessions/Default //设置默认Session
exec /etc/X11/xdm/Xsession kde
vi /etc/X11/xdm/Xaccess //设置广播对象
192.168.1.*
--------------------------------------------------------------------------------------------
Step 3 Services setup
Shell> ntsysv
运行ntsysv命令启用named 、telnet 和 wu_ftpd 服务,禁用httpd 、mysqld、iptables和ipchains 服务和其他一些不需要的服务,然后用reboot重启服务器。
--------------------------------------------------------------------------------------------
Step 4 Dns setup
vi /etc/named.conf
1 创建标准区域
##你可以根据你的喜好来命名,这里我使用的后缀是.loc,主要是为了避免和Internet已经注册的域名相冲突,你可以自行决定你的后缀。
##添加下面的文本到 /etc/named.conf
zone yesgo.loc{
type master;
file "yesgo.loc";
}
zone 1.168.192.in-addr.arpa{
type master;
file "192.168.1";
}
2 创建域名库文件
touch /var/named/yesgo.loc
touch /var/named/192.168.1
##编辑正向域名库文件,建立主机名和主机别名
vi /var/named/yesgo.loc
@ IN SOA ns.yesgo.loc. root.ns.yesgo.loc. (
2001050801 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.yesgo.loc.
IN MX 0 ns.yesgo.loc.
ns IN A 192.168.1.2
ftp IN CNAME ns.yesgo.loc.
mail IN CNAME ns.yesgo.loc.
pop IN CNAME ns.yesgo.loc.
smtp IN CNAME ns.yesgo.loc.
##编辑反向域名库文件,建立主机名指针
vi /var/named/192.168.1
@ IN SOA ns.yesgo.loc. root.ns.yesgo.loc. (
2001050801 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.yesgo.loc.
IN MX 0 ns.yesgo.loc.
2 IN PTR ns.yesgo.loc.
3 重新启动DNS服务
/etc/rc.d/init.d/named restart
4 域名查询
##测试域名是否解析成功,这是一个交互式的命令行,你可以输入域名或者IP地址进行正向和反向查询
nslookup -sil
--------------------------------------------------------------------------------------------
Step 5 KDE setup
这一步是可有可无的,因为你完全可以不去理会而直接使用默认界面。一般的做法是先根据KDE配置向导进行总体设置,然后再使用KDE控制中心进行详细配置,在此不多介绍。需要提的一点是你可以通过KDE Control Panel 中的Windows Manager来设置默认Session,当然也可以通过配置文件来实现这一点。
--------------------------------------------------------------------------------------------
Step 6 Ftp setup
vi /etc/shells
##添加下面一行到/etc/shells,将作为FTP用户的shell,使其不能使用命令和telnet服务
/dev/null
## 增加ftpchroot组,该组中的用户将以自己的home目录作为FTP根目录
groupadd ftpchroot
## 添加FTP用户,该类用户只能使用FTP服务,且以自己的home目录为根目录
useradd src –s /dev/null –g ftpchroot //本帐号用来存放软件包
passwd src
/*
我习惯将软件包放到自定义的/home/src目录,主要目的还是上面提到的数据保全和软件上传问题,如果放到/usr/local/src目录,这两点也能实现但不方便,如果你习惯将软件包放到/usr/local/src,你可以删除/usr/local/src然后为/home/src建立一个符号连接。
*/
rm –R -f /usr/local/src
ln –s /home/src /usr/local/src
--------------------------------------------------------------------------------------------
Step 7 MySQL、Apache and php Unistall
使用Package管理器或者rpm命令卸载MySQL、Apache和PHP,建议初学者使用Package管理器,分别查找这三个关键词直到将所有相关的软件包都卸载干净。我们接着会编译安装这些软件。
--------------------------------------------------------------------------------------------
Step 8 MySQL install
1 准备用户
## 注意,这里所说的准备用户,指的是MySQL服务的启动用户,这个用户是Linux系统的用户,并非MySQL用户。需要搞清的是,Linux和MySQL有各自的用户机制,他们都有一个最高权限的用户root,MySQL安装完毕默认只有一个用户,root ,其密码为空,可以使用mysqladmin –u root –p password 指令来更改其密码。
userdel mysql
useradd mysql –s /dev/null
passwd mysql
2 安装MySQL
cd /home/src
tar xvzf my* //解包
cd my*
./configure --prefix=/usr/local/mysql //配置
make //编译
make install //安装
./scripts/mysql_install_db //建库
3 修改文件夹权限
##下面修改相关文件夹权限,否则MySQL服务不能启动,或者说你对数据库没有写权限
chown –R root /usr/local/mysql
chgrp –R mysql /usr/local/mysql
chown –R root /usr/local/mysql/bin
chgrp –R mysql /usr/local/mysql/bin
chown –R root /usr/local/mysql/var
chgrp –R mysql /usr/local/mysql/var
chmod 770 /usr/local/mysql/var
chown –R root /usr/local/mysql/var/mysql
chgrp –R mysql /usr/local/mysql/var/mysql
chmod 770 /usr/local/mysql/var/mysql
chown –R root /usr/local/mysql/var/mysql/*
chgrp –R mysql /usr/local/mysql/var/mysql/*
chmod 770 /usr/local/mysql/var/mysql/*
chmod 770 /usr/local/mysql/lib/mysql/libmysqlclient.a
4 重新加载动态库
##因为我们采用自定义编译安装的方式,所以跟系统原先定义的库位置不一样,现在我们重新指定它并重新加载
vi /etc/ld.so.conf
#添加下面一行
/usr/local/mysql/lib
shell>ldconfig //重新加载动态库
5 测试MySQL
cd /usr/local/mysql
./bin/safe_mysqld –-user=mysql & //启动MySQL服务
mysqladmin –u root –p password 'your_password' //更改用户密码
mysql –p //开始使用
6 创建启动脚本
##创建MySQL服务,使之在系统启动时自动启动
cd /etc/rc.d/init.d
touch mysqld
vi mysqld
##文件内容如下:
#!/bin/bash
#Start MySQL service
cd /usr/local/mysql
./bin/safe_mysqld - -user=mysql&
##改变该脚本的权限,否则系统启动时会说由于没有执行权限而启动失败
chown –R root /etc/rc.d/init.d/mysqld
chmod 700 /etc/rc.d/init.d/mysqld
##将此服务连接到init 5,如果你使用init 3启动机器,连接到rc3.d即可,60代表启动的次序,S要大写
ln –s /etc/rc.d/init.d/mysqld /etc/rc.d/rc5.d/S60mysqld
--------------------------------------------------------------------------------------------
Step 9 Apache install
1 安装Apache
cd /home/src
tar xvzf apa* //解包
cd apa*
./configure --prefix=/usr/local/apache --enable-module=so //设置编译参数
make //编译
make install //安装