收藏:Apache VirtualHost配置成功
今天终于把Apache的“虚拟主机”配置的问题解决了。
网上关于Apache VirtualHost部分的不少,但是基本上都是有问题的,所以我得把配置过程记录下来。
系统环境,Windows Server 2003 SP2,WAMPServer 2.0c,Apache 2.2.8。
由于blogger输出的问题,下面内容用《》代替<>。
编辑httpd.conf,查找Include conf/extra/httpd-vhosts.conf,把前面注释符号“#”删掉。
编辑httpd-vhosts.conf,我把WAMPServer安装在D:/wamp,所以我这里的路径是D:\wamp\bin\apache\apache2.2.8\conf\extra。
把里面的内容清空掉,换成下面的内容:
NameVirtualHost *:80
《VirtualHost *:80》
ServerName xxxxxxxxx.cn
ServerAlias www.xxxxxxxxx.cn
DocumentRoot d:/www/www
《/VirtualHost》《VirtualHost *:80》
ServerName beta.gx.cn
ServerAlias www.beta.gx.cn
DocumentRoot d:/www/beta.gx.cn/
《/VirtualHost》《VirtualHost *:80》
ServerName test.xxxxxxxxx.cn
ServerAlias www.test.xxxxxxxxx.cn
DocumentRoot d:/www/test.xxxxxxxxx.cn/
《/VirtualHost》
说明一下,NameVirtualHost *:80和中的*为当前服务器IP,如果有固定IP可以用IP把*替换掉,我这里使用的是动态IP,所以用*,我看apache帮助文档的时候,一直认为这里的*为对应的域名,这个想法应该是错误的,因为我填上域名的时候一直没有设置成功。ServerName这个填域名,DocumentRoot填ServerName上域名对应的根目录。
这时候访问域名会出现403权限错误,我的D盘用的是NTFS,对应的文件夹everyone的权限都是全部控制,所以不存在系统权限的问题。
问题出在httpd.conf上。
编辑httpd.conf,找到DocumentRoot “d:/www/www/”这项,这是默认根目录路径,但是要更改的不是这个,一直往下找,找到《Directory “d:/www/www”》,然后找到对应字段,在下面加上:
《Directory “d:/www/test.xxxxxxxxx.cn”》
Options Indexes FollowSymLinks
AllowOverride all
Order Allow,Deny
Allow from all
《/Directory》《Directory “d:/www/beta.gx.cn”》
Options Indexes FollowSymLinks
AllowOverride all
Order Allow,Deny
Allow from all
《/Directory》
这里的”d:/www/beta.gx.cn”和”d:/www/test.xxxxxxxxx.cn”为前面VirtualHost里的路径。
保存httpd.conf和httpd-vhosts.conf,然后重启Apache。
然后访问xxxXXXxxx.CN打开的是d:/www/www目录,访问beta.gx.cn的是d:/www/beta.gx.cn,而访问test.xxxXXXxxx.CN的则是d:/www/test.xxxxxxxxx.cn/目录,实现了单IP多域名多站点的功能。
