如何在OS X Lion中使虚拟主机生效?

12

我正在尝试在我的Mac OS X 10.7安装上设置虚拟主机。 我使用VirtualHostX来管理我的/etc/hosts和httpd-vhosts.conf文件。 目前,我的httpd-vhosts.conf文件如下:

NameVirtualHost *:80

<Directory "/Users/yuval/Sites/mysite/">
Allow From All
AllowOverride All
</Directory>
<VirtualHost *:80>
    ServerName "mysite.dev"
    DocumentRoot "/Users/yuval/Sites/mysite"
</VirtualHost>

我的 /etc/hosts 文件中有以下内容:

# VHX START
127.0.0.1 mysite.dev
fe80::1%lo0 mysite.dev
# VHX STOP

我在“系统偏好设置”下启用了Web Sharing,并且知道Apache正在运行。但是,当我导航到127.0.0.1或mysite.dev时,会出现以下信息:

 

禁止

   

您没有权限访问此服务器上的/。

/Users/yuval/Sites/mysite的权限为755。尝试将它们更改为777也没有帮助。请注意,无论我选择哪个文件夹,都会发生这种情况 - 我在/Users/yuval/Sites/mysite中没有.htaccess文件。

更新:检查Apache错误,这些是出现的日志:

[Fri Dec 09 17:59:27 2011] [error] [client 127.0.0.1] (13)Permission denied:
    access to / denied
[Fri Dec 09 17:59:27 2011] [error] [client 127.0.0.1] (13)Permission denied:
    access to /favicon.ico denied

看起来虚拟主机(vhosts)和 hosts 代码确实能够确定该地址存在,但出于某种原因它却无法正常工作。有什么想法吗?


请查看我的编辑。只是“权限被拒绝:无法访问/”。 - Yuval Karmi
2个回答

11

请确保在/Users/yuval/Sites/mysite/目录中有一个index.html文件。

或者启用目录索引:

<Directory "/Users/yuval/Sites/mysite/">
  Options +Indexes
  Allow From All
  AllowOverride All
</Directory>

您还可以设置DirectoryIndex选项以查找除index.html之外的默认文件:http://httpd.apache.org/docs/current/mod/mod_dir.html

编辑

看到了您的错误消息 - 这似乎不是目录索引问题。

尝试像这个ServerFault答案中提到的那样在/Users/yuval目录上运行chmod 755命令: https://dev59.com/InM_5IYBdhLWcg3wymc0#1241319

还要检查/Users/yuval/Sites/目录中是否有任何.htaccess文件,因为Apache也会检查这些文件。


谢谢你的建议。目录中有一个index.php文件,但我已经添加了一个.html文件。仍然没有作用。我接着启用了Indexes并重新启动了apache,但还是不行。还有其他的想法吗? - Yuval Karmi
1
你说得对!确实是父目录权限问题!非常感谢你! - Yuval Karmi
在父文件夹上执行chmod 755是正确的方法。 - Matthieu

6
我只需要做的事情是重新指向我的自定义虚拟主机目录(并重新启动apache)。
我试图将其指向~/Sites/vhosts而不是/Users/[用户名]/Sites/vhosts,这是我保存所有.conf文件的地方,因此出现了配置错误。我正在查找apache日志,并从apache文档中了解到httpd -S,它告诉我配置问题的确切位置。
网络博客中有很多错误信息,所以我在这里为像我这样的apache新手发布此内容。
httpd -S
# fix the issues
sudo apachectl restart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接