虚拟主机:不能同时有多个虚拟主机
问题描述:
似乎无法找出这一个。我想在我的本地机器上安装2个ViritualHosts。两种服务器名称都不相同。下面是我在我的httpd-vhosts.conf虚拟主机:不能同时有多个虚拟主机
<VirtualHost *:80>
DocumentRoot "/Users/MyName/Documents/Work/dev/project"
ServerName work.local
ErrorLog "/private/var/log/apache2/work.local.com-error_log"
CustomLog "/private/var/log/apache2/work.local.com-access_log" common
<Directory "/Users/MyName/Documents/Work/dev/project">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/Users/MyName/Documents/Personal/Dev/project"
ServerName dev.shop
ErrorLog "/private/var/log/apache2/dev.shop.com-error_log"
CustomLog "/private/var/log/apache2/dev.shop.com-access_log" common
<Directory "/Users/MyName/Documents/Personal/Dev/project">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
,这里是我的hosts文件:
127.0.0.1 work.local
127.0.0.1 dev.shop
只有一个作品,无论我把第一,第二个一定要去的的文档根第一。所以ServerName本身可以工作,但它使用了错误的DocRoot。
为什么哦为什么?我错过了什么?顺便说一下,我在小牛队。
答
hosts文件的语法应为:
127.0.0.1 inspire.local dev.shop
所有别名的IP必须在同一行。这与Apache没有任何关系,它一般是由系统解析/etc/hosts
。
+0
我尝试过,但没有区别。然而,仍然不错的提示并不知道你可以把它们全部放在一行中。谢谢! :d – Fernando
答
想通了。
NameVirtualHost *:80
原来NameVirtualHost
决定了VirtualHosts将如何回升。所以在我的情况下,两个Virtualhosts被宣布是这样的:
<VirtualHost 127.0.0.1:80>
不匹配我的NameVirtualHost
于是就用默认的第一个。
我改变他们完全匹配,像这样:
<VirtualHost *:80>
而现在他们的工作。
该死的。
希望这可以帮助其他人。
'work.local'!='inspire.local'。 – Barmar
你是完全正确的,但那是我在我的设置中隐藏真实姓名的失败尝试。在那些真正的文件上匹配。我纠正它以避免混淆。谢谢你指出,tho。 – Fernando