Mac OS X Localhost 上出现 403 禁止错误

Mac OS X Localhost 上出现 403 禁止错误

我在 Mac OS X 10.6 上的“系统偏好设置”中设置了 Web 共享,并点击了它提供的链接。不幸的是,Apache 给了我这个 403 错误:

禁止

您无权访问此服务器上的 /~myusername/index.html。

访问日志显示:10.0.1.2 - - [30/Jun/2010:16:25:15 -0700] "GET /~myusername/ HTTP/1.1" 403 210

错误日志显示:[Wed Jun 30 16:26:09 2010] [error] [client 10.0.1.2] client denied by server configuration: /Users/myusername/Sites/

奇怪的是,访问http://本地主机运行良好。只有两个用户文件夹出现了问题,另一个用户文件夹(比我的系统升级更新)运行良好。

我以前在 Leopard 的机器上也遇到过这种情况,所以我把所有东西都改成了~/Sites755,但没什么用。有什么建议吗?我猜是我对机器做了什么导致了这种情况,因为我无法想象 Apple 会搞砸这样的事情。

我确实设置了 PEAR这些说明,但我不知道这是否是造成这种情况的原因。

答案1

Apple 有针对此问题的支持文档。修复此问题需要创建一个文件/etc/apache2/users/yourusername.conf您的用户名成为账户简称,例如danielbeck– 它通常是您的主文件夹的名称/Users),其中包含以下内容:

<Directory "/Users/yourusername/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

之后,运行sudo chown root:wheel /etc/apache2/users/yourusername.conf并重新启动 Apache。

答案2

要使 Apache 能够看到该文件,运行 Apache 的用户(可能是www_www)必须有权访问这些用户的站点目录。仅具有 的内容的读取/执行权限~/Sites是不够的,因为必须允许它从/向下遍历到 的路径~/Sites。因此,请确保//Users/Users/myusername/Users/myusername/Sites都至少具有a+x权限(目录上的 eXecute 位允许该用户类遍历目录,即使不允许读取访问权限)。

ls -lde / /Users/ /Users/myusername/ /Users/myusername/Sites

如果任何目录没有显示最后一x组(“其他”组),则使用类似的方法chmod a+x ...为该目录进行设置。

如果任何目录的 ACL 显示用户www被明确拒绝访问,则使用适当的参数来chmod修复 ACL。

答案3

作为参考,我刚刚处理过这个问题,但这里的答案都不适用于我的具体情况。我正在配置虚拟主机,但更重要的是,我需要我的 htaccess 文件真正起作用。

我在 /etc/apache2/users/USERNAME.conf 文件中将“AllowOverride None”更改为“AllowOverride All”,并且我的所有站点都开始被禁止。

我将其改回来,然后在我的 httpd-vhosts.conf 文件内仅为一个站点进行更改,并且只有该站点被禁止。

查看日志后,发现问题出在 URL 重写和缺少 FollowSymLinks,于是我返回到 USERNAME.conf 文件。我将“AllowOverride None”切换为“AllowOverride All”,并在下一行添加“Options +FollowSymLinks”。

一切开始正常运转。我以前在 Windows 上使用过 xampp,它已经为像我这样的新手在服务器范围内设置了很多这样的设置。

答案4

2011 年 10 月 Lion 更新后,我还必须添加

UserDir 已启用,因此我的 /etc/apache2/extra/httpd-userdir.conf 如下所示:

UserDir enabled 
UserDir Sites

#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf

<IfModule bonjour_module>
   RegisterUserSite customized-users
</IfModule>

相关内容