/ 中存储网

Apache2.2服务器上单IP绑定多域名虚拟主机的方法

2013-12-30 12:42:02 来源:itjs.cn

由于项目需要,我得在一个Apache2.2上动行两个应用,服务器只有一个IP。

按照apache手册和网上的一些文章,老不成功。以下是遇到的问题及解决办法。

需求说明:

1、apache安装在d:apache2下;

2、应用1的根目录为d:wwwrootaaa,对应的域名为 www.aaa.com

3、应用2的根目录为d:wwwrootbbb , 对应的域名为 www.bbb.com

4、服务器IP为 220.181.111.88

(配置前,请先在万网设置域名解析到该IP)

第一次配置方法如下:

1、打开 httpd.conf ,把463行的#去掉,即让 Include conf/extra/httpd-vhosts.conf 生效;

2、打开 httpd-vhosts.conf,即添加两个域名,并修改IP编辑,如下:

NameVirtualHost 220.181.111.88:80

ServerAdmin [email protected]

DocumentRoot "D:/wwwroot/aaa"

ServerName aaa.com

ServerAlias www.aaa.com

ServerAdmin [email protected]

DocumentRoot "D:/wwwroot/bbb"

ServerName bbb.com

ServerAlias www.bbb.com

重启apache,报错提示:

The requested URL / was not found on this server.

靠,查error.log,居然说什么目录找不到,指向到什么htdocs去了……

这个问题,折腾了我三个晚上!!!

最后发现,不应该改IP,应该继续保留 * 就OK了!!如下:

NameVirtualHost *:80

ServerAdmin [email protected]

DocumentRoot "D:/wwwroot/aaa"

ServerName aaa.com

ServerAlias www.aaa.com

ServerAdmin [email protected]

DocumentRoot "D:/wwwroot/bbb"

ServerName bbb.com

ServerAlias www.bbb.com

这样就对了!我靠!

当然,你还会遇别名解析不对的问题,以及系统提示没有权限的问题,好办:

1、把 128 的#去掉,打开别名模块,LoadModule vhost_alias_module modules/mod_vhost_alias.so

2、把 192/193行前加#,放开权限就行。