VirtualHosts不适用于Mac OS 10.7

时间:2012-05-05 17:23:39

标签: macos apache virtual-hosts

我想在Mac OS 10.7上创建VirtualHosts,因此我编辑了/etc/apache2/httpd.conf。我取消注释“Include /private/etc/apache2/extra/httpd-vhosts.conf”这一行以包含虚拟主机。在文件/private/etc/apache2/extra/httpd-vhosts.conf中,我写了以下内容:

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/var/www"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/someFolder"
    ServerName myApplication.dev
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/someOhterFolder"
    ServerName myApplication2.dev
</VirtualHost>

我删除了两个示例虚拟主机。在我的/ etc / hosts文件中,我添加了以下内容:

127.0.0.1 myApplication.dev
127.0.0.1 myApplication2.dev

我重新启动了我的Apache并在浏览器中键入了myApplication.dev和myApplication2.dev,但是我收到错误“找不到服务器”,它在浏览器中生成了www.myApplication.dev(对于myApplication2.dev也是如此)。 / p>

我忘了要配置的东西吗?我在httpd.conf中激活了PHP,也安装了mysql,但我认为这与虚拟主机无关。 谢谢你的帮助!

4 个答案:

答案 0 :(得分:7)

apachectl有一个选项-S来检查vhost.conf文件语法。您可以在vhosts.conf文件中找到这些行。

> # You may use the command line option '-S' to verify your virtual host
> # configuration.

所以,当你运行

sh-3.2# apachectl -S

如果您获得语法OK 结果,则表示您的vhosts.conf文件中没有问题。

httpd: VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server zz.xxxx.com (/private/etc/apache2/extra/httpd-vhosts.conf:27)
         port 80 namevhost zz.xxxx.com (/private/etc/apache2/extra/httpd-vhosts.conf:27)
         port 80 namevhost yy.xxxx.com (/private/etc/apache2/extra/httpd-vhosts.conf:35)
Syntax OK

如果conf文件有任何问题,它会告诉你像

这样的错误行
sh-3.2# apachectl -S
Syntax error on line 33 of /private/etc/apache2/extra/httpd-vhosts.conf:
CustomLog takes two or three arguments, a file name, a custom log format string or format name, and an optional "env=" clause (see docs)

确保您的vhosts.conf文件具有真正的配置。

答案 1 :(得分:5)

我使用OS X Lion遇到了完全相同的问题。我通过将“:: 1 myhost.dev”添加到/ etc / hosts:

来修复它
127.0.0.1 myhost.dev
::1 myhost.dev

顺便说一句,:: 1还修复了一个错误,该错误使得从Mac提供的虚拟主机上的页面加载速度非常慢。

答案 2 :(得分:2)

您使用的是HTTP代理吗?如果是这样,请为myApplication.dev和myApplication2.dev设置例外。

我的意思是“服务器发现”问题意味着您的浏览器无法找到主机“myapplication.dev”的IP地址。这可能是因为您使用的是http代理,可能是您的托管公司配置的代理。在任何情况下,您甚至都无法访问服务器,因此您根本无法尝试虚拟主机配置。

要尝试虚拟主机配置,您可以在终端窗口中使用telnet并直接将HTTP与服务器通信,如下所示:

yourmacbox:~ yourname$ telnet 127.0.0.1 80

您应该看到以下文字:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

然后键入

GET / HTTP/1.0
Host: myApplication.dev

现在,希望您应该从Web服务器看到一些响应。这表明一旦你可以连接它,虚拟主机的东西就可以工作。

答案 3 :(得分:2)

我遇到了同样的问题,并注意到在{10.1升级后ServerRoot "/usr"设置如图所示并且不正确。 httpd.conf文件仍然在/ etc / apache2下,但是它中的这个设置指向了错误的地方。一旦我通过更改为ServerRoot "/etc/apache2"修复了该问题,我之前的所有虚拟主机配置都得到了正确的选择。

我还必须通过取消注释这里提到的第477行来重新启用虚拟主机http://brettterpstra.com/fixing-virtual-hosts-and-web-sharing-in-mountain-lion/在我修复了上面的路径问题之前,它还没有完全启用。