我遵循这个指南,并试图通过允许foo.dev指向Web文件夹/foo来在OSX上创builddynamic虚拟主机。 我的区别是,我正在使用~/Sites作为我的网页文件夹,而不是像指南中的Mac HD。 它使用dnsmasq,我相信是安装和正常工作。
所以在我的〜/站点文件夹中我有:
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>
第一个虚拟主机工作正常,并将home.dev导致我在该虚拟主机的根目录中的示例index.php文件。
第二个虚拟主机只会为anything.dev提供一个403 Forbidden错误,无论是否存在.dev子域的文件夹。
有任何想法吗?
编辑:
最新日志条目
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
服务器现在工作(是configuration文件中的错误日志目录的问题)。 但是仍然无法访问dynamic虚拟主机。
你的第二个网站的内容是什么?
有两个可能的原因:
如果一个目录没有索引文件(index.php,index.html,default.html等),并且目录列表不被允许,Apache将显示一个403错误页面。
我注意到你没有在sites.dev中启用ExecCGI。 你可以尝试启用它吗?
更新:path中的百分号( /Users/harryg/Sites/sites/%1 )适用于mod_vhost_alias,但不适用于Apache的<Directory>规则。 修改这个:
<Directory "/Users/harryg/Sites/sites/%1">
对此:
<Directory "/Users/harryg/Sites/sites">
它工作吗?
刚刚遇到这个相同的问题,它原来是在Apache的默认设置。 在httpd.conf中是这样的
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>
删除“拒绝所有”行并重新启动Apache。
访问被拒绝的403错误状态。 你必须检查目录树目录的权限。
确保运行Apache的用户已经读取并执行目录的权限并读取文件。