Mac OS X 本地主机上的 403 禁止错误

wai*_*933 23 apache-http-server osx-snow-leopard macos

我在 Mac OS X 10.6 的系统偏好设置中设置了网络共享,然后单击它给我的链接。不幸的是,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://localhost工作正常。只是我遇到了两个用户文件夹的问题,另一个比我的系统升级新的用户文件夹工作正常。

我以前在 Leopard 的机器上使用过这个,所以我把所有东西都改成~/Sites了 755,这没有任何好处。有什么建议?我想我已经对我的机器做了一些导致这种情况的事情,因为我无法想象苹果会在这样的事情上搞砸。

我确实用这些说明设置了 PEAR ,但我不知道这是否可能是它的原因。

Dan*_*eck 22

Apple 有针对此问题的支持文档。解决此问题涉及创建一个文件/etc/apache2/users/yourusername.conf(您的用户名是帐户短名称,例如danielbeck- 通常是您的主文件夹的名称/Users),其中包含以下内容:

<Directory "/Users/yourusername/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

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


Spi*_*iff 14

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

ls -lde / /Users/ /Users/myusername/ /Users/myusername/Sites
Run Code Online (Sandbox Code Playgroud)

如果这些目录中的任何一个没有显示最后一x组(“其他”的那个),那么使用类似的东西chmod a+x ...为该目录设置它。

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

  • 将 /Users/myusername 的权限更改为 chmod 755 为我解决了这个问题。 (2认同)

Jak*_*ake 5

作为参考,我刚刚处理了这个问题,这里的任何答案都不适用于我的具体情况。我正在配置虚拟主机,但更重要的是,我需要我的 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,它有很多这些设置已经为像我这样的傻瓜设置了服务器范围。


Jos*_*h K 0

您可能没有打开索引。如果不这样做,您将需要创建一个索引文件(index.htmlindex.php)或显式指定该文件,即http://localhost/~me/mypage.html.