我想在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,但我认为这与虚拟主机无关。 谢谢你的帮助!
答案 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/在我修复了上面的路径问题之前,它还没有完全启用。