19OCTOBER |
|---|
Apache支持两种形式的虚拟主机,分别是基于名称的虚拟主机和基于IP的虚拟主机,今天下午经过几次实验,终于调试通过。现分析给大家:
基于名称的虚拟主机,是根据不同的ServerName,将站点指向不同的目录的一种形式。一般适用于只拥有一个IP,但拥有多个域名的情况。配置基于名称的虚拟主机,需要在httpd.conf中添加如下配置(此处以802端口为例):
NameVirtualHost \*:802
<VirtualHost \*.802>
ServerAdmin [email protected]
DocumentRoot "D:/program files/htdocs/fbsdk/"
ServerName www.fb.com
ServerAlias www.fb.com
</VirtualHost>
在这里需要说一下的是:
基于IP的虚拟主机,是根据不同的IP,将站点指向不同目录的一种形式。适用于有多个ip和域名,且每个域名拥有一个独立IP的情况。具体写法如下(此处以端口801为例):
Listen www.fb.com:801
<VirtualHost www.fb.com:801>
DocumentRoot "D:program filesxampphtdocsfbsdk"
ServerName www.fb.com:801
ServerAdmin [email protected]
</Virtualhost>
这里,第一行可以直接写做
Listen 801
而ServerName的位置也可以不写端口号。
比较下代码,其实不难发现,前面我所出现的问题,其实是因为缩写的代码造成冲突引起的。基于名称的虚拟主机的配置中,代码段
参考资料:
19OCTOBER |
|---|
1 编辑httpd.conf,查找Include conf/e… [kivu23]( “[email protected]”) -
wamp5下的虚拟主机的配置
1 编辑httpd.conf,查找Include conf/extra/httpd-vhosts.conf,把前面注释符号“#”删掉。
2 编辑httpd-vhosts.conf,我把WAMPServer安装在D:/wamp,所以我这里的路径是D:wampApache2confextra。
把里面的内容清空掉,换成下面的内容:
NameVirtualHost *:80
ServerName www.host1.com
ServerAlias www.host1.com
DocumentRoot “D:/wamp/www/host1″
ServerName www.host2.com
ServerAlias www.host2.com
DocumentRoot “D:/wamp/www/host2″
3 编辑httpd.conf,找到DocumentRoot “d:/wamp/www/”这项,这是默认根目录路径,但是要更改的不是这个,一直往下找,找到,然后在该后加上如下内容:
Options Indexes FollowSymLinks
AllowOverride all
Order Allow,Deny
Allow from all
Options Indexes FollowSymLinks
AllowOverride all
Order Allow,Deny
Allow from all
4 修改C:/WINDOWS/system3/drivers/etc/host这个文件,用记事本打开,加上如下内容:
127.0.0.1 www.host1.com
127.0.0.1 www.host2.com
好了,然后重启apache,在浏览器里面输入www.host1.com,看看访问到的内容是不是host1这个目录呢。
[Jason.Z]( “[email protected]”) -
@kivu23
多谢@kivu23 提供wamp5下的配置方法!
[kivu23]( “[email protected]”) -
@Jason.Z
嘻嘻,我又回来了,关注你出新东西,学学习
[Jason.Z]( “[email protected]”) -
多谢多谢,最近比较忙,写的东西少,我会尽量努力,争取多写一些好的东西出来。