OSX Mountain Lion Web服务器上的ServerAlias无法解析

时间:2012-08-09 09:30:41

标签: macos virtualhost apache httpd.conf

我遇到ServerAliases无法解析到相应服务器的问题。

我的主机文件是这样设置的(这是尝试设置APE的一部分所以请原谅无关的代码):

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

127.0.0.1 testy.local
127.0.0.1 testsite.local
127.0.0.1 ape-test.local
127.0.0.1 chickens.cluck.com
127.0.0.1 ape.ape-test.local
127.0.0.1 ape2.ape-test.local

和httpd-vhosts.conf:

NameVirtualHost *:80

<VirtualHost *:80>
        ServerName ape-test.local
        ServerAlias ape.ape-test.local
        ServerAlias test.ape-test.local
        ServerAlias *.ape.ape-test.local

        DocumentRoot "/Library/WebServer/Documents/"
</VirtualHost>

<VirtualHost *:80>
    ServerName testy.local
    ServerAlias testy
    ServerAlias fish.local
    DocumentRoot "/Users/myusername/Sites/testsite"
    <Directory /Users/myusername/Sites/testsite/>
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

httpd.conf中已启用虚拟主机,testy.local将解析为正确的目录。但是使用'testy /'或'fish.local'将无法解决。

似乎没有任何内容写入错误日志或控制台,并且运行sudo bash -x /usr/sbin/apachectl -k start显示没有错误。 运行httpd -S也没有问题:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server ape-test.local (/private/etc/apache2/extra/httpd-vhosts.conf:44)
         port 80 namevhost ape-test.local (/private/etc/apache2/extra/httpd-vhosts.conf:44)
         port 80 namevhost testy.local (/private/etc/apache2/extra/httpd-vhosts.conf:53)
Syntax OK

所以看起来只是ServerAlias无法正常工作。

有人有什么想法吗?

1 个答案:

答案 0 :(得分:3)

通过查看您的主机文件,您似乎没有在主机文件中提供“testy”或“fish.local”。您只需要在主机文件中输入这两个域,然后就可以全部设置了。

你需要像我在下面那样添加它们,

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

127.0.0.1 fish.local
127.0.0.1 testy
127.0.0.1 testy.local
127.0.0.1 testsite.local
127.0.0.1 ape-test.local
127.0.0.1 chickens.cluck.com
127.0.0.1 ape.ape-test.local
127.0.0.1 ape2.ape-test.local

希望这有帮助。