Apache虚拟主机设置很简单。打开conf文件夹下的httpd.conf,直接拉到最下面就是虚拟主机的配置说明,我们可以直接删掉“#”号(#是配置的文件的注释,表明该行没有生效)或者自己添加虚拟主机。其实Apache虚拟主机设置分为两种,基于名称的虚拟主机和基于IP的虚拟主机,这两种方式略有不同。
一.什么是基于名称的虚拟主机?在单独IP的情况下,Apache下可以建立多个虚拟主机,并通过不同的域名来访问不同的虚拟主机。举个例子,加入你在自己的电脑上搭建了Apache服务器,并准备测试多个网站程序,那么你可以修改本地电脑的host的文件,windows下host文件在C:\\windows\system32\drivers\etc\host 我想用linux主机的都应该知道这个文件在哪里我就不多说了。把你准备想用的域名添加到host里面,格式如下
127.0.0.1 www.nameA.com
127.0.0.1 www.nameB.com
然后在Apache配置文件后直接追加
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
DocumentRoot D:/nameA
ServerName www.nameA.com
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot D:/nameB
ServerName www.nameB.com
</VirtualHost>
这样两个虚拟名称的虚拟主机就建立好了。并可以通过不同的域名来访问不同的主机。
二.可能有的童鞋要问“我有自己的域环境有自己的DNS服务器,可不可以不修改Host文件而通过DNS服务器来解析?”
下面介绍如何在Apache上设置基于IP的虚拟主机。首先在自己的DNS服务器上添加区域,比如ipA.com和ipB.com。分别在区域中设置A记录和别名,假如你的Apache主机有2个IP192.168.0.10和192.168.0.20,那么分别分配给ipA.com和ipB.com(注意:如果没有多个IP也可以设置成相同的IP),设置好DNS服务器后,在Apache配置文件后追加:
NameVirtualHost 127.0.0.1
<VirtualHost www.ipA.com>
DocumentRoot D:/ipA
ServerName www.ipA.com
</VirtualHost>
<VirtualHost www.ipB.com>
DocumentRoot D:/ipB
ServerName www.ipB.com
</VirtualHost>
这样所有加入域中的计算机就可以直接通过ipA.com和ipB.com来访问不同的虚拟主机了。(这种方式不需要修改本地Host文件,如果添加了应先去掉,因为静态解析要优先于动态解析)
你可能会问按照第一种方式设置虚拟主机然后同样在DNS服务器中设置两个虚拟主机的域名同时指向Apache主机地址能不能实现一个ip多个虚拟主机。经过测试我发现这样的设置会导致通过域名只能访问Apache的默认Web目录。
PS:除了以上设置外还要在添加虚拟主机之前建立好虚拟目录,方式如下:
#<Directory “Web路径”>
<Directory “D:/nameA”>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
如果觉得用Apache搭建测试环境复杂麻烦,请参考《Windows下搭建WAMP服务器》
“Apache虚拟主机设置”上的4条回复
😛 😛 😛 😛 😛 Apache的相关设置需要重启服务
我也用LMAP来着,开始过来之时觉得你的头像又很有趣,
你喜欢四叶草?
我在songtaste上发现这个头像 觉的挺好看 我QQ也是用的这个头像 🙂
学习一下,不然不敢上VPS