/ 中存储网

Windows系统配置Apache服务器虚拟主机(VirtualHost)

2014-02-03 13:55:01 来源:kejihao

配置Apache虚拟主机(VirtualHost)目的

让本地的测试环境使用多个域名,同时可以使用不同的网站根目录,有几个域名需要共用一个相同的网站根目录。

环境

系统:Windows 2003

Web程序版本:Apache2

配置Apache虚拟主机操作步骤

打开Apache安装目录下的confhttpd.conf

在末尾适当位置添加以下配置指令,根据需要自行修改相关设置,详细的指令解释可继续阅读到文章末尾。

#####BY####clin003################

ServerName ab.baicailin.com

NameVirtualHost 192.168.1.1

<VirtualHost 192.168.1.1>

ServerName site.clin003.com

DocumentRoot D:/wwwroot/htdocs

<Directory />

Options FollowSymLinks

AllowOverride All

</Directory>

<Directory D:/wwwroot/htdocs>

Options Indexes FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost 192.168.1.1>

#ServerName ab.baicailin.com

ServerAlias ab.clin003.com  ab.baicailin.com

DocumentRoot D:/wwwroot/htdocs/ab

<Directory />

Options FollowSymLinks

AllowOverride All

</Directory>

<Directory D:/wwwroot/htdocs/ab>

Options Indexes FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

#默认WEB服务目录为 “D:/wwwroot/htdocs” (也就是第一个虚拟主机对应目录),若没有匹配域名请求的时候会使用到默认虚拟主机。

配置修改完成后,保存,然后重启 Apache 服务即可生效。

ServerName ab.baicailin.com

#主机名 建议使用域名

NameVirtualHost 192.168.1.1

#设置虚拟主机。 当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL 请求。

<VirtualHost 192.168.1.1>

#虚拟主机配置开始标记

ServerName site.clin003.com

#设置虚拟主机名

ServerAlias ab.clin003.com  ab.baicailin.com

#若有多个域名需要共用一个目录,可以使用这个指令

DocumentRoot D:/wwwroot/htdocs

#设置虚拟主机根目录路径

<Directory />

#配置目录权限

Options FollowSymLinks

#FollowSymLinks是规则运作所必需的,这是重写引擎的安全需要。主要用于重定向,伪静态应用。

AllowOverride All

#AllowOverride All是指明Apache服务器是否去找.htacess文件作为配置文件。设置为 all 让所有具有.htaccess 上下文的指令都允许出现在.htaccess文件中。如果设置为none,那么服务器将忽略.htacess文件。 参考:http://www.oschina.net/c/article/10493

Order allow,deny

#关于Apache的Order Allow Deny

Apache有一条缺省规则,“order allow,deny”本身就默认了拒绝所有的意思,因为deny在allow的后面;同理,“order deny,allow”本身默认的是允许所有;当然,最终判断结果还要综合下面的allow、deny语句中各自所包含的范围;(也就是说order语句后面可以没有allow、deny语句)。  “order allow,deny”代表先判断allow语句再判断deny语句,反之亦然。

判断原则分4步走——

1.       首先判断默认的,所谓“首先判断默认的”,就是判断“order deny,allow”这句,它默认是允许所有;

2.       然后判断逗号前的;

3.       最后判断逗号后的;

4.       最终按顺序叠加而得出判断结果。所谓“最终按顺序叠加而得出判断结果”,这是一个形象化了的说法,我把每一步判断都看作一个“不透明的图层”,然后一步步按顺序叠加上去,最终得出的“图像”就是判断结果。