本文最后更新于 3408 天前,其中的信息可能已经有所发展或是发生改变。
有时候为了区分业务,给不同二级域名配置不同的站点也是很不错的。
以下配置的环境是:CentOS + Apache
首先在 httpd/conf/httpd.conf, 将其中的
ServerAdmin
ServerName
DocumentRoot
注释掉。
其中看到有一行是:
Include conf.d/*.conf
既然已经包含了所有conf文件,那我就直接开干了。
以下是apache配置目录下的文件,很清楚地看到没有vhosts.conf之类的文件,那么我们自己在conf.d目录下创建
[root@foam conf.d]# tree /etc/httpd/ -L 3 /etc/httpd/ |-- conf | |-- httpd.conf | |-- httpd.conf.bak.2014.12.10 | |-- httpd.conf.bak.2014.12.2 | |-- httpd.conf.rpmsave | `-- magic |-- conf.d | |-- README | |-- php.conf | `-- welcome.conf |-- logs -> ../../var/log/httpd |-- modules -> ../../usr/lib64/httpd/modules `-- run -> ../../var/run/httpd 5 directories, 8 files
vhosts.conf文件内容如下:
NameVirtualHost *:80 #这行我一开始漏掉了,导致访问的一直是第一个虚拟站点,很郁闷啊。 <VirtualHost *:80> ServerAdmin #管理员账号,如 root@localhost DocumentRoot #该主机的目录,如 /var/www/html ServerName #域名1,如 zoufeng.me ServerAlias #别名(可选),如 www.zoufeng.me ErrorLog "logs/域名1-error.log" CustomLog "logs/域名1-access.log" combined <Directory "/var/www/html"> order allow,deny allow from all </Directory> </VirtualHost> <VirtualHost *:80> ServerAdmin #管理员账号,如 root@localhost DocumentRoot #该主机的目录,如 /var/www/html2 ServerName #域名2,如 m.zoufeng.me ServerAlias #别名(可选) ErrorLog "logs/域名2-error.log" CustomLog "logs/域名2-access.log" combined <Directory "/var/www/html"> order allow,deny allow from all </Directory> </VirtualHost>
编辑后,重启apache服务
[root@foam conf.d]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]