VirtualHosts不适用于Mac OS 10.7

tes*_*ter 4 apache macos 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>
Run Code Online (Sandbox Code Playgroud)

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

127.0.0.1 myApplication.dev
127.0.0.1 myApplication2.dev
Run Code Online (Sandbox Code Playgroud)

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

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

cyb*_*b0k 7

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

> # You may use the command line option '-S' to verify your virtual host
> # configuration.
Run Code Online (Sandbox Code Playgroud)

所以,当你跑步

sh-3.2# apachectl -S
Run Code Online (Sandbox Code Playgroud)

如果你得到语法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
Run Code Online (Sandbox Code Playgroud)

如果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)
Run Code Online (Sandbox Code Playgroud)

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


oro*_*edd 5

我使用OS X Lion遇到了完全相同的问题.我通过在/ etc/hosts中添加":: 1 myhost.dev"来修复它:

127.0.0.1 myhost.dev
::1 myhost.dev
Run Code Online (Sandbox Code Playgroud)

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