我想在 Mac OS 10.7 上创建 VirtualHosts,因此我编辑了/etc/apache2/httpd.conf。我取消了“包含/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 也是如此)。
我忘记配置什么了吗?我在httpd.conf中激活了PHP,也安装了mysql,但我认为这与虚拟主机无关。
谢谢你的帮助!
最佳答案
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 文件具有真实的配置。
关于macos - VirtualHosts 不适用于 Mac OS 10.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10464229/