在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。Apache虚拟主机配置有3种方法:基于IP配置、基于域名配置和基于端口配置,这里介绍基于域名配置

1)编辑httpd.conf配置文件,开启 Virtual hosts

[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf

  1. #Include conf/extra/httpd-vhosts.conf                   注释掉#即可

Apache(WEB服务器)配置虚拟主机_bc

2)编辑httpd-vhosts.conf 虚拟主机配置文件

[root@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

#内容如下:

1. <VirtualHost *:80>
2. ServerAdmin abc@qq.com
3. DocumentRoot "/usr/local/apache/conf/vhsots"
4. ServerName www.abc.com
5. ErrorLog "logs/abc_com_error.log"
6. CustomLog "logs/abc.com_access_log" common
7. <Directory "/usr/local/apache/conf/abc.com">
8. AllowOverride All
9. Options -Indexes FollowSymLinks
10. Order allow,deny
11. Allow from all
12. </Directory>
13. </VirtualHost>
14.
15. <VirtualHost *:80>
16. ServerAdmin bcd@qq.com
17. DocumentRoot "/usr/local/apache/conf/vhsots"
18. ServerName www.bcd.com
19. ErrorLog "logs/bcd_com_error.log"
20. CustomLog "logs/bcd_com_access.log" common
21. <Directory "/usr/local/apache/conf/bcd.com">
22. AllowOverride All
23. Options -Indexes FollowSymLinks
24. Order allow,deny
25. Allow from all
26. </Directory>
27. </VirtualHost>

3)创建发布目录

[root@localhost ~]# mkdir /usr/local/apache/conf/{abc.com,bcd.com}

Apache(WEB服务器)配置虚拟主机_apache_02

4)重启apache服务

[root@localhost ~]# /usr/local/apache/bin/apachectl restart

[root@localhost ~]# netstat -lntup

Apache(WEB服务器)配置虚拟主机_apache_03

5)创建测试文件

[root@localhost ~]# echo 'this is www.abc.com' > /index.html

[root@localhost ~]# echo 'this is www.bcd.com' > /index.html

Apache(WEB服务器)配置虚拟主机_虚拟主机_04

6)添加本地hosts解析

#编辑C:\Windows\System32\drivers\etc\hosts

Apache(WEB服务器)配置虚拟主机_bc_05

7)访问

#浏览器访问www.abc.com,出现以下页面

Apache(WEB服务器)配置虚拟主机_bc_06

访问www.bcd.com,出现以下页面

Apache(WEB服务器)配置虚拟主机_虚拟主机_07

8)参数详解:

1) 使用<Directory>… </Directory>设置指定目录的访问权限,其中可包含:

Options

AllowOverride

Order

Allow

Deny

如上五个属性,在后面可以跟如下参数设置:

2) AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。指令设置为 All 时,所有具有 ".htaccess" 作用域将生效.

3) Options -Indexes FollowSymLinks禁止显示目录,如果要以目录显示需要改成Options Indexes FollowSymLinks

4) Order allow,deny ,默认情况下禁止所有客户机访问;Order deny,allow 默认情况下允许所有客户机访问。

5) Allow from all允许所有客户机访问。

6) NameVirtualHost指令,指定一个基于域名的虚拟主机将使用哪个IP地址来接受请求。