我已经关注本指南并尝试通过允许foo.dev
直接指向 Web 文件夹在 OSX 上创建动态虚拟主机/foo
。我的区别在于我使用的~/Sites
是 Web 文件夹,而不是指南中的 Mac HD。它使用 dnsmasq,我相信它已安装并正常工作。
因此在我的 ~/Sites 文件夹中我有:
home
sites
|-foo
|-bar
我的 httpd-vhosts.conf 如下所示:
<Virtualhost *:80>
DocumentRoot "/Users/harryg/Sites/home"
ServerName home.dev
UseCanonicalName Off
ErrorLog "logs/home/error.log"
<Directory "/Users/harryg/Sites/home">
#Options FollowSymLinks
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride None
Allow from all
</Directory>
</Virtualhost>
<Virtualhost *:80>
VirtualDocumentRoot "/Users/harryg/Sites/sites/%1"
<Directory "/Users/harryg/Sites/sites/%1">
Options FollowSymLinks
#Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride None
Allow from all
</Directory>
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</Virtualhost>
第一个 vhost 工作正常,并且转到我在该 vhost 根目录中的home.dev
示例文件。index.php
无论 .dev 子域中是否存在文件夹,第二个虚拟主机都会对 any.dev 给出 403 Forbidden 错误。
有任何想法吗?
编辑:
最新日志条目
Apache 错误日志:
[Wed Dec 18 00:45:37 2013] [error] [client 127.0.0.1] File does not exist: /Users/harryg/Sites/home/favicon.ico
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server configuration: /Users/harryg/Sites/sites/test/, referer: http://home.dev/
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server
服务器现在可以工作了(配置文件中的错误日志目录存在问题)。但仍然无法访问动态虚拟主机。
答案1
你的第二个网站的内容是什么?
可能有两个原因:
如果目录没有指数文档(index.php、index.html、default.html 等)和目录列表不允许,Apache 将显示 403 错误页面。
我注意到您没有在 sites.dev 中启用 ExecCGI。您可以尝试启用它吗?
更新:路径中的百分号 ( /Users/harryg/Sites/sites/%1
) 是针对 mod_vhost_alias 的,不是 Apache 的<Directory>
规则。修改此内容:
<Directory "/Users/harryg/Sites/sites/%1">
对此:
<Directory "/Users/harryg/Sites/sites">
它有用吗?
答案2
刚刚遇到了同样的问题,结果发现这是 apache 中的默认设置。在 httpd.conf 中是这样的
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
删除“Deny from all”行并重新启动 apache。
答案3
403 错误表示拒绝访问。您必须检查从树目录到站点目录的权限。
确保运行 apache 的用户对目录具有读取和执行权限,并且对文件具有读取权限。