当前位置:Linux教程 - Linux - LinuxAid 网站配置实例(一)

LinuxAid 网站配置实例(一)

floatboat



1.前言

本文将以LinuxAid网站基本配置过程为实例,讲解怎么用 Linux 做为OS,构架一个完整的Web服务器的过程。照着步骤,仔细实践,相信您可以在极短的时间内建筑起一个比较安全、稳健的Web服务器。
整个环境就是在实际Internet上做,LinuxAid的基本参数是,IP地址:202.99.11.120,域名是:linuxaid.com.cn,linuxaid.net.cn等。服务器所使用的OS为:Redhat Linux 6.2
缺省安装时选择定制安装,选择软件包时除了 Sendmail 之外,不选择任何的服务器软件,同时应该安装C、C++开发包。我们将要手工编译安装的软件包有:
Apache 1.3.12; #WEB服务器,提供HTTP服务
Resin 1.2.b1 #JSP解释器,提供JSP/SERVLET解释服务
PHP 4.0p #PHP解释器,提供PHP解释服务
Mysql 3.22.32 #数据库服务器,提供数据库存储服务
Proftpd 1.2.0rc2 #匿名FTP服务器,提供文件传输服务
Bind 8.2.2p5 #域名服务器(DNS),提供域名解析服务
Openssh-2.1.1.p4 #安全外壳,用于代替系统缺省的TELNET服务
Postfix-19991231-pl09 #邮件传递服务器(MTA),提供邮件发送服务
我们将把所有的自行编译的软件都放置于 /usr/local/servers ,也就是说配置是所使用的参数 --prefix 将指向 /usr/local/servers/packages(其中packages为软件包的名称,如Web服务器将使用 apache)。
本文将以安装手册的形式出现,力求简单明了,可以指导您迅速的将一台只有基本操作系统(Linux)的计算机安装成为一台可以提供邮件(MAIL)、域名(DNS)、文件传输(FTP)、Web、JSP编程环境、PHP编程环境及数据库支持的Web服务器。
在进行实际操作前,我们强烈的建议您在看完全部内容。因为服务器的安装过程中要注意的问题非常多。如果您只是看了一部分就开始实际操作,有可能会导致问题的出现。同时,Web服务器是一个比较复杂的系统,虽然我们尽力的将可能遇到的问题列出来并提供解决的方法,但仍然有可能出现一些无法遇见的问题。您可以自行尝试查出错误的原因,如果可能的话,将您得到的结果通过我们的网站(http://www.linuxaid.com.cn)与其他读者共同分享。如果您遇到无法解决的问题,您可以直接到我们的技术支持网站http://www.linuxaid.com.cn 技术支持论坛讨论,我们的在线支持工程师会给您详细的解释。

2.基础网络配置
2.1.网卡的安装与设置

使用 netconf 按照以下的步骤:
1.使用方向键↓选择Basic host information并按回车
2.填写 Host name,一般情况下是www,如果您是用来做Web服务器的话
3.使用方向键↓将光标移动至 Adaptor 1 的范围内
4.选择 Enabled 选项,使网卡有效
5.使用方向键将光标移动至Config Mode内,选择IP地址方式,对于Web服务器应该选择 Manual
6.我们的Web服务器的主域名是linuxaid.com.cn 所以在 Primary name+domain 这一项里面应该输入 linuxaid.com.cn,而别名(Aliases)可以不输入
7.IP地址(IP address)应该输入Web服务器的IP地址,这里我们输入202.99.11.120
8.因为我们假设Web服务器是安装在一个C类的子网内,所以子网掩码(Netmask)应该选择255.255.255.0(将光标放置于Netmask输入内,按ctrl+x键将会弹出一个列表框在其中选择即可。提示:在所有有v字样的列表框内都可以按ctrl+x键选择)
9.Linux里面每一个以太网设备都必须有一定设备名,将光标放置于Net device输入框内按键盘ctrl+x键选择设备名,在Linux里面第一个以太网设备的名称应该选择eth0。
10.在设备名选择完之后,应该为此设备选择一个驱动程序,使Linux的内核可以驱动它正常的工作。这里假设我们的网卡的ne2000兼容的10M网卡。使用ctrl+x选择ne即可。
11.在驱动选择完成之后,要看网卡的具体情况确定是否需要输入中断号和端口号。这里我们的网卡的NE2000 ISA的网卡,没有PNP功能我们只有自己手工的将中断号和端口号输进去。
12.至了这里,网卡的参数我们已经设置完成,用TAB键将键盘移动到Accept处按键盘的回车键保存设置。并退出netconf,重新启动Linux之后用以下的命令查看网卡工作是否正常
# ifconfig eth0
正常情况下应该会显示关于网卡的相关信息,如果没有的话,检查您的设置步骤是否正确。

2.2.IP地址的修改
使用netconf按照以下的步骤:
1.Basic host information
2.填写 Host name,一般情况下是www,如果您是用来做Web服务器的话
3.使用方向键↓将光标移动至 Adaptor 1范围内的IP address输入框内,输入您想要更改的IP地址,输入完成之后用TAB键移动至Accept按钮处按回车即可。
4.使用手工的方式修改可以用以下的命令:
# ifconfig eth0 202.99.11.120
其中eth0是设备的名称,202.99.11.120是IP地址。

2.3.缺省DNS服务器地址的设置
直接使用vi修改/etc/resolv.conf,查看其中是否存在nameserver的参数,如果没有手工添加进去,如果有的话直接修改其后的IP地址即可。其格式为
nameserver 127.0.0.1
其中127.0.0.1为DNS服务器的地址,由于本站配置了DNS服务器,所以可以用本地地址,也可写为202.99.11.120。

3.服务器安全
做为Web服务器,我们首先要考虑的一条就是安全。Linux在安装完成之后,缺省的情况下会打开一些端口以提供一些基础如Telnet、Finger等服务。
对于我们来说是没有任何用处的,说不定还会导致一些安全问题。为此,在服务器的建设初始,我们将就考虑将这些对我们日常工作没有起到作用的服务关闭掉。在这一部分,我们将会介绍如何使用 openssh 和 proftpd 代替 inetd 最常用的两个服务 telnetd 和 ftpd,从而实现最终将 inetd 从系统同删除掉。
在进行具体的操作前,强烈的建议您先为自己添加一个独立的用户,一般来说我是这样处理的。添加一个组名为 ftpusers,再添加一个用户 myuser 其组为 ftpusers。相应的命令为:
#groupadd ftpusers
#useradd myuser –g ftpusers
此用户将用于进行常规的维护,与测试,象Telnet、FTP这些工作的测试。

3.1.安装 openssh
1、下载软件包:
从 http://www.openssl.org 下载 openssl 0.9.5a
从 http://www.freessh.org 下载 openssh-2.1.1.p4
下载的软件包放置于 /usr/local/src。
2、将软件包解压缩

# cd /usr/local/src
# tar zxvf openssl-0.9.5.tar.gz
# tar zxvf openssh-2.1.1.p4.tar.gz

3、编译并安装 openssl和openssh

# cd /usr/local/src
# cd openssl-0.9.5
# ./configure --prefix=/usr/local/servers/openssl #设置安装路径
# make
# make install

编译(make)过程所需的时间比较长,在我的PIII600+128MB SCSI硬盘的机器上编译的过程需要差不多五分钟。所以请耐心等候其编译完成。
在完成 openssl 的编译与安装之后,我们就可以开始编译与安装 openssh。步骤如下:

# cd /usr/local/src
# cd openssh-2.1.1.p4
# ./configure --prefix=/usr/local/servers/openssh --with-ssl-dir=/usr/local/servers/openssl
# make
# make install
# cd /usr/local/src/openssh-2.1.1.p4/contrib/redhat
# install -m 644 sshd.pam /etc/pam.d/sshd
# sed ‘s//sbin///local/servers/openssh/sbin//g’ sshd.init > /etc/rc.d/init.d/sshd
# chmod 755 /etc/rc.d/init.d/sshd
# chkconfig --level 345 sshd on
# chkconfig --level 0126 sshd off

4、测试sshd
启动 sshd:

# /etc/rc.d/init.d/sshd start

如果出现:

Starting sshd: [ OK ]

则证明 sshd 已经正确的安装并已经在后台运行,如果出现其它的提示,请检查您的安装步骤是否正确。
sshd 正确启动之后,我们试试用其客户端看是否可以正确的联接至服务器:

# cd /usr/local/servers/openssh/bin
# ./ssh 127.0.0.1 #连接本地的SSH服务器

使用此命令之后正常情况下会要求您输入root的密码,您输入之后如果可以成功的进入则证明 sshd 已经成功的安装完成了。

ssh的win32客户端可以从http://www.sorted.org/~chris/ssh/putty.exe 下载。方便您在Windows里面远程控制网站服务器。

3.2.安装ProFTPD

1、下载软件包
从 http://www.proftpd.net 下载proftpd-1.2.0rc2.tar.gz
下载的软件包放置于 /usr/local/src。
2、将下载的软件包解压缩

# cd /usr/local/src
# tar zxvf proftpd-1.2.0rc2.tar.gz

3、编译并安装proftpd

# ./configure --prefix=/usr/local/servers/proftpd
# make
# make install

4、修改 /etc/inetd.conf 将其中的 ftp 服务关闭掉
使用 vi /etc/inetd.conf 打开 inetd 配置文件,搜索 ftp,在

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a

这一行的最前面插入一个 # 号,修改之后的结果如下:

# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a

在vi环境下使用 :wq 存盘退出以后,使用 killall -HUP inetd 重新启动 inetd,使所做的修改生效。
5、生成ProFTPD启动文件

# cd /etc/rc.d/init.d
# sed ‘s/sbin/atd/local/servers/proftpd/sbin/proftpd/g’ atd > proftpd
# sed ‘s/atd/proftpd/g’ proftpd > /tmp/txt
# sed ‘s/at daemon/proftpd daemon/g’ /tmp/txt > proftpd
# rm /tmp/txt
# chmod 755 proftpd
# chkconfig --level 345 proftpd on
# chkconfig --level 0126 proftpd off

说明:chkconfig,是一个在Linux里面用于修改服务器(daemon)运行环境的小程序,其命令格式为 chkconfig [–level ] 用于指定某个服务在指定的运行级别内是处于何种状态。
6、为ProFTPD创建PAM文件

使用 vi 在 /etc/pam.d 创建一个名为 ftp 的文件,其内容为:

auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
session required /lib/security/pam_pwdb.so

7、修改ftp用户的shell,并创建其主目录

# usermod –s /bin/bash ftp
检查/home/ftp 是否存在,如果不存在使用以下的命令创建

# mkdir /home/ftp
# chown ftp.ftp /home/ftp
# chmod 700 /home/ftp

如果您不希望匿名登录有效,本节可以不做
8、修改ProFTPD的启动参数

# vi /usr/local/servers/proftpd/etc/proftpd.conf
搜索 nogroup,并将其改为 nobody
:%! sed ‘s/nogroup/nobody/g’
修改完成后存盘退出
9、启动ProFTPD
# /etc/rc.d/init.d/proftpd start
如果出现
Starting proftpd daemon: [ OK ]

则证明ProFTPD已经正确的安装并已经在后台运行,如果出现其它的提示,请检查您的安装步骤是否正确。
10、测试ftp的联接是否正常

ftp localhost

使用我们先前创建的用户登录。
如果无法联接,则检查您的ProFTPD是否已经在运行(可以用 ps –ax | grep “proftpd” 查看是否有ProFTPD进程)。
如果无法登录,检查您的用户名及口令是否正确;如果确认所输入的用户及口令正确而又无法登录,请检查第9步是否有正确的进行。

3.3.关闭因特网超级服务器(inetd)
经过以上的步骤,我们已经实现了使用openssh代替telnetd实现远程登录,用proftpd代替in.ftpd提供匿名文件传输服务。Inetd提供的基础功能,我们都已经实现,现在可以将inetd彻底的关闭掉。使用以下的命令:

# /etc/rc.d/init.d/inet stop
# chkconfig 0123456 inet off

经过以上的命令之后就可以将inet关闭掉,并且在下次启动时系统也不会自动启动inetd服务。

4.数据库服务器的安装
经过第一部分的工作,我们已经成功的建立了一个比较安全的环境。可以开始做一些实质性的工作。首先做为Web服务器,必须提供数据库支持,我们就从数据库的安装与基本的维护开始。这里我们选择MySQL做为我们的数据库服务器。您可以从www.mysql.org下载到最新版本的MySQL。我们选择稳定版本的3.22.32做为我们说明的版本。
4.1.下载软件包
从www.mysql.org下载MySQL 3.22.32 并放置于/usr/local/src
4.2.将下载的软件包解压缩

# cd /usr/local/src
# tar zxvf mysql-3.22.32.tar.gz

4.3.编译并安装MySQL

# cd /usr/local/src/mysql-3.22.32
# ./configure --prefix=/usr/local/servers/mysql
# make
# make install
# cd /usr/local/servers/mysql/bin
# ./mysql_install_db

4.4.启动MySQL并设置管理员口令

# cd /usr/local/servers/mysql/bin
# ./safe_mysqld& #启动MySQL服务器
# ./mysqladmin -u root password ‘password’ #使用mysqladmin修改root的口令 #为’password’

4.5.MySQL常用命令简介
在MySQL数据库服务器的软件包中除了数据库服务器核心之外还有许多应用程序,这些应用程序负责管理、维护MySQL的方方面面。这些应用程序包括SQL语法分析器,数据库管理程序,数据备份程序等等。
MySQL的每一个应用程序都带上很多的参数,因为篇幅的问题我们这里也只能做一些简单的介绍。详细的内容您可以使用相应的程序带上 --help 参数查看。
MySQL的启动
在很多情况下我们需要手工的启动和关闭MySQL服务器(如初始化、测试、数据恢复等等)。这时就需要用到以下的命令来控制MySQL服务器的运行状态。
启动MySQL:
/usr/local/servers/mysql/bin/safe_mysqld&
关闭MySQL:
/usr/local/servers/mysql/bin/mysqladmin -u root -pyoupassword shutdown
注意,在缺省的情况下只有root才有权限启动和关闭MySQL服务器。同时,关闭MySQL时如果root有口令的话还需要通过提供-p参数告诉mysqladmin需要提供密码。

MySQL语法分析器mysql的使用简介
mysql是MySQL自带的一个数据库客户端语法分析器。这个分析器可以直接的与MySQL边接,执行用户输入的SQL指令,对数据库进行相关的操作。
下面介绍一下mysql常的参数,并对其使用进行一些简单的介绍:
-h 指定要连接的主机名或IP地址
-u 指定连接时使用的用户名
-p 指定连接时使用的口令
使用mysql连接MySQL的例子:

# /usr/local/servers/mysql/bin/mysql -h localhost -u root -p
Enter password:********

其中,星口所包括的内容是我们root所对应的密码,如果root的密码为空,您可以直接使用:

# /usr/local/servers/mysql/bin/mysql -h localhost -u root

登录,成功登录后,mysql命令会提示与下面的信息相类似的提示:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 43 to server version:3.22.23

Type help for help.

mysql>
同时命令行出现""mysql>""提示符,您现在就可以开始输入SQL语句了,常用的语句如下:
SHOW DATABASES 显示系统中所有数据库名
SHOW TABLES 显示当然数据库中所有的表名
USE DATABASE_NAME 使用指定数据库做为当然数据库
QUIT 退出mysql解释器
其中,DATABASE_NAME为数据库,使用SHOW TABLES前必须先使用USE命令指定数据库。
MySQL管理工具mysqladmin的使用简介
mysqladmin是MySQL数据库软件包中的一个数据库管理工具。缺省的情况下,只有MySQL的数据库管理员(缺省为:root)才可以使用。
mysqladmin 是一个功能强大的命令行工具,它的功能都可以通过一系列的命令行参数进行控制,下面列出一些常用的参数:

--f 在执行操作时不做任何的确认提示
-h 指定要连接的主机名或IP地址
-p 指定连接用户的密码
-P 指定主机中MySQL监听的端口号(缺省为:3306)
-u 指定连接时使用的用户名

除了这些参数之外,mysqladmin还有很多命令,同样我们将一些常用的命令列出来供您参考:
create database dbname #创建新的数据库,其中dbname为数据库名
drop database dbname #删新数据库,其中dbname为数据库名
extended-status #显示服务器的当前状态,如同时连接的客户端数量
flush-privileges #刷新权限表,当我们修改用户信息,如口令时就需要
#使用到此命令刷新MySQL的权限表
password #修改指定用户的密码,前面已经用到了
shutdown #关闭服务器
接下来我们列一些简单而常用的例子:
这里例子在使用前,都必须先将当前路径设置为/usr/local/servers/mysql/bin,下面是设置路径的命令:
# cd /usr/local/servers/mysql/bin
(1)创建新的数据库
# ./mysqladmin -u root -p create database mytestdb #以root的身份创建数据库
(2)删除数据库
# ./mysqladmin -u root -p drop database mytestdb #以root的身份删除数据库
(3)修改用户密码
# ./mysqladmin -u root -p password password #将root的密码改为password
(4)刷新权限表
# ./mysqladmin -u root -p flush-privileges #刷新权限表
(5)关闭数据库服务器
# ./mysqladmin -u root -p shutdown #关闭数据库
MySQL数据导出工具mysqldump的使用简介
很多情况下我们都需要将数据库的数据导出到一个文件内进行备份或者到另外一个数据库进行导入操作。这时就需要使用到MySQL提供的数据导出工具mysqldump。
其基本的语法为:
# mysqldump [OPTIONS] database [tables]
如果没有指定任何的选项和表名(tables),mysqldump会 将整个数据库的内容都导出来。下面是mysqldump一些常用的参数:
--add-drop-table 在每个表格前加上DROP TABLE语句,用于在导入时删除原有的表格
-h 指定要连接的主机名或IP地址
-t 只备份数据,而不备份表结构
-d 只备份表结构,而不备份数据
--opt 允许同时多个附加的参数
-p 指定连接时的口令
-q 不使用缓冲区直接备份至硬盘,这对于要备份的数据库比较大时非常有用
-u 指定连接时使用的用户名
接下来我们以一个简单的例子来说明mysqldump的使用方法:
(1)将test数据库中所有表格全部导出至/tmp/test.bak中,因为mysqldump导出数据时是接输出至控制台的,我们要将它所输出的数据转存至文件就需要使用重定向命令"">""。注意,如果root用户已经设置了口令,则需要输入口令才可以导出。

# /usr/local/servers/mysql/bin/mysqldump -u root -p test > /tmp/test.bak

数据导出之后使用vi /tmp/test.bak或者less /tmp/test.bak就可以查看到导出的数据。
(2)将mysql数据库中的db表的结构导出至/tmp/mysql.db.str中

# /usr/local/servers/mysql/bin/mysqldump -d -u root -p mysql db > /tmp/mysql.db.str

(3)将mysql数据库中所有表格的数据(不包括结构)都导出至/tmp/mysql.data中

# /usr/local/servers/mysql/bin/mysqldump -t -u root -p mysql > /tmp/mysql.data

注意,mysql数据库中存放在关于MySQL数据库服务器的权限信息,在做完试验之后应该立即将/tmp/test.bak、/tmp/mysql.db.str、/tmp/mysql.data删除,以免造成安全隐患

4.6.MySQL的权限控制及用户管理
MySQL使用了一个独立的数据库用于存储用户的权限信息,可以提供细至每个操作的权限控制。这为精确的控制用户的权限提供了便利,同时也给用户的管理增加了复繁性。由篇幅有限,这里我们只能简单的讲一些权限控制的技巧。
MySQL的权限主要由两部分构成,这两部分分别存放于两个表user和db里面。
user表主要用来存放用户名、密码、用户可以从那些主机上登录、权限是否有创建数据库的权限等
db 表主要用来存放用户对具体的某个数据库是否有读取、删除、添加、更新的权限等。
了解了这两个表对权限控制的作用之后要控制具体用户的权限就容易多了。下面我们以一些简单的例子来说明权限控制的方法:
说明:因为这些例子都涉及到权限的更改,所以在做完修改之后都必须使用 flush privileges 命令更新MySQL的权限表。所做的更改才会有以后,同样以后如果自行修改了MySQL的权限表也必须使用flush privileges命令进行更新。同时所有的命令都是以root的身份在mysql命令行工具中执行,启动mysql命令行工具的方法是进入mysql的安装路径/bin内运行./mysql,对于本书来说是 /usr/local/servers/mysql/bin/mysql
1.添加新用户,只允许在本地登录,没有任何权限
INSERT INTO user (Host,User,Password) VALUES
(localhost,mydbuser,PASSWORD(password));
运行此命令之后,将会产品一个名为mydbuser的新用户,其口令为password,只允许在本地计算机中登录,没有任何的权限。
2.添加新用户,允许在任何地方登录,对数据库 test 拥有读取、添加的权限
INSERT INTO user (Host,User,Password) VALUES
(%,mydbuser1,PASSWORD(password));
INSERT INTO db (Host,Db,User,Select_priv,Insert_priv)
VALUES (%, est,mydbuser1,Y,Y);
运行这两条命令之后,将会产品一个名为mydbuser1的用户,拥有对数据库test内所有表格读取与添加的权限。

5.Web服务器的安装与Web编程环境的建立
经过4部分的操作,我们的Web站点已经拥有了一个稳定的数据库。接下来就要安装Aache开始提供HTTP服务,同时还需要建议Web编程环境,提供JSP/PHP的支持,以进行动态网站的开发。
1、下载软件包
从http://www.apache.org 下载Apache 1.3.12
从http://www.caucho.com 下载 resin 1.1.4
从http://java.sun.com 下载 jdk1.2.2
从http://www.worldserver.com/mm.mysql 下载mm.mysql-2.0.2-bin.jar
下载的软件包放置于 /usr/local/src。
2、将下载的软件包解压缩

# cd /usr/local/src
# tar zxvf apache_1.3.12.tar.gz
# tar zxvf resin-1.1.3.tar.gz --directory=/usr/local/servers/

5.1.安装Web服务器
以模块化方式编译并安装apache

# cd /usr/local/src/apache_1.3.12
# ./configure --prefix=/usr/local/servers/apache --enable-shared=max
# make
# make install

生成 Apache 启动文件

# cd /etc/rc.d/init.d
# sed s/sbin/atd/local/servers/apache/bin/httpd/g atd > httpd
# sed s/atd/httpd/g httpd > /tmp/txt
# sed s/at daemon/httpd daemon/g /tmp/txt > httpd
# rm /tmp/txt
# chmod 755 httpd
# chkconfig --level 345 httpd on
# chkconfig --level 0126 httpd off

修改Apache配置文件
在缺省的情况下Apache不会设置ServerName这个参数,而需要我们手工设置,方法如下:

# cd /usr/local/servers/apache/conf

使用vi打开httpd.conf,搜索ServerName变量,将其修改为 ServerName www.linuxaid.com.cn。其中www.linuxaid.com.cn是我们的WEB服务器的域名。

启动并测试Apache服务器

# /etc/rc.d/init.d/httpd start
如果出现:
Starting httpd daemon: [ OK ]

则证明 httpd 已经正确的安装并已经在后台运行,如果出现其它的提示,请检查您的安装步骤是否正确。
使用 lynx localhost 查看Apache的缺省页面,正常情况下是可以查看到的。如果没有出现页面或者提示错误信息,请您检查Apache是否已经在运行,同时httpd.conf中的DocumentRoot参数指向的路径是否允许任何人读取与运行(权限为rx)。
到了这一步,我们已经成功的以DSO方式安装了Apache ,我们的Web服务器可以开始提供静态的页面了,下一步我们就要开始加入JSP、PHP的支持。以使我们的Web服务器可以提供动态页面的服务。

使Apache支持基于域名的虚拟主机
Apache的虚拟主机支持有两种方式,一是基于用户访问Apache主机时所使用的域名,另一种是通过指定IP地址来提供。这里我们只讲解如何通过不同的域名来实现虚拟主机的支持。
要实现基于域名的虚拟主机的前提条件是必须有两个域名同时指向Apache主机的IP地址,这里我们假设这两个域名分别是www.linxuaid.com.cn和www.linuxaid.net.cn这两个域名的文档都分别放置于 /home/linuxaid.com.cn 和 /home/linuxaid.net.cn这两个目录内,同时这两个目录已经设置好权限,对于目录让所有的人都可以读取、运行,对于文件,让所有的人都可以读取。
以下是具体的配置:
NameVirtualHost 202.99.11.120 #告诉Apache,在202.99.11.120这个IP上处理
#基于域名的虚拟主机

ServerAdmin [email protected] #指定WEB管理员的邮箱
DocumentRoot /home/linxuaid.com.cn #指定本虚拟主机的文档目录
ServerName www.linxuaid.com.cn #指定本虚拟主机的域名
ErrorLog logs/linxuaid.com.cn.error.log #指定错误记录应该存放于那里
CustomLog logs/linxuaid.com.cn.log #指定常规记录应该存放于那里



ServerAdmin [email protected] #指定WEB管理员的邮箱
DocumentRoot /home/linuxaid.net.cn #指定本虚拟主机的文档目录
ServerName www.linuxaid.net.cn #指定本虚拟主机的域名
ErrorLog logs/linuxaid.net.cn.error.log #指定错误记录应该存放于那里
CustomLog logs/linuxaid.net.cn.log #指定常规记录应该存放于那里

将以上的指令输入至httpd.conf之后,重新启动apache,使用www.linuxaid.com.cn访问时将可以得到 /home/linuxaid.com.cn中的内容,而使用www.linuxaid.net.cn访问时则可以得到/home/linuxaid.net.cn中的内容。如果www.linuxaid.net.cn的内容与www.linuxaid.com.cn的内容相同,只要将DocumentRoot后目录改为相当就可以了。如果也希望linuxaid.com.cn能访问,还需要再定义一次,这样写ServerName linuxaid.net.cn就可以了。