只有本地主机虚拟主机在山狮工程

我试图在OS X Mountain Lion上运行Apache,但只能让虚拟主机'localhost'工作。

在/ etc / hosts中我有:

127.0.0.1 localhost magento.dev solas-lite.dev 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost 

在httpd-vhosts.conf中我有:

 NameVirtualHost *:80 <VirtualHost *:80> ServerName solas-lite.dev DocumentRoot "/Users/johnpeden/Sites/solas-lite" </VirtualHost> <VirtualHost *:80> ServerName magento.dev DocumentRoot "/Users/johnpeden/Sites/magento" </VirtualHost> <VirtualHost *:80> ServerName localhost DocumentRoot "/Users/johnpeden/Sites" </VirtualHost> 

本地主机显示正是我期望的,如果我ping本地主机,solas-lite.dev或magento.dev我得到了127.0.0.1响应。 但是,如果我尝试访问浏览器中的http://solas-lite.dev或http://magento.dev ,我没有得到任何回应。 我甚至可以映射本地主机到另一个文件夹,它的工作原理

服务器已重新启动,计算机已重新启动。 httpd -S的输出是:

 VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server solas-lite.dev (/private/etc/apache2/extra/httpd-vhosts.conf:28) port 80 namevhost solas-lite.dev (/private/etc/apache2/extra/httpd-vhosts.conf:28) port 80 namevhost magento.dev (/private/etc/apache2/extra/httpd-vhosts.conf:33) port 80 namevhost localhost (/private/etc/apache2/extra/httpd-vhosts.conf:38) 

出了什么问题?

顺便说一句,我不认为这与山狮有什么关系,你会看到在Linux,Windows等相同的行为。

我认为这里的问题是在你的/ etc / hosts中,127.0.0.1的第一个条目是localhost所以如果你的浏览器总是来自本地机器,那么http请求总是会说它来自localhost或者127.0.0.1或者magento-dev127.0.0.1 ,根据/ etc / hosts文件本质上是localhost ,那么apache会解释这个请求的目的地是localhost NamedVirtualHost。

你有没有尝试在你运行Apache的机器外面发出请求。

我也会检查你的apache日志,看看请求来自哪里,并看到请求标题。

希望这可以帮助。