OSX El Capitan - Apache 403 Forbidden

时间:2015-10-01 16:07:21

标签: macos apache osx-elcapitan

我刚从Yosemite升级到El Capitan,但遗憾的是忘了复制我的旧httpd.conf,现在我需要再次配置它的所有设置。

我已将documentmentroot更改为上一个/ users / admin / www,并且还配置为释放对此文件夹的访问权限:

<Directory "/users/admin/www">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

重新启动Apache,但即使这样,我在尝试访问127.0.0.1时也会收到“Forbidden”错误。

我在这里缺少什么?

10 个答案:

答案 0 :(得分:72)

执行以下操作:

  • 打开终端
  • 执行命令

    cd /etc/apache2/
    sudo mv httpd.conf httpd.conf.OLD
    sudo mv httpd.conf~previous httpd.conf
    sudo apachectl restart
    

在这个问题上花了3个小时后 - 这个为我工作

答案 1 :(得分:18)

我刚刚发现旧的.conf文件在El Captain更新期间保存在此文件夹中:

/private/etc/apache2/httpd.conf.pre-update

所以我只是将旧的定义复制到新的定义中:)

答案 2 :(得分:9)

您可以导航至/private/etc/apache2/然后diff httpd.conf httpd.conf.pre-update,以查看旧配置文件与已添加的新配置文件之间的差异。

对我来说,有很多LoadModules行被注释掉了,我的apache用户/组已经更改回_www

答案 3 :(得分:5)

我不熟悉Apache 2.4中的变化,所以这个真的让我困了大约30分钟。我刚刚从Mavericks升级到El Capitan(Apache 2.2到2.4),我无法加载我的个人站点目录(http://localhost/~ {username}。我一直得到“禁止”。经过一番研究,我发现我需要修改/etc/apache2/users/{username}.conf以添加“需要所有授权”。由于我从未升级到Yosemite(也使用Apache 2.4),我从未偶然发现过这个。

我希望这些信息有助于某人

答案 4 :(得分:4)

更新目录访问控制对我有用:

  

在此示例中,允许所有请求。

     

2.2配置:

     

Order allow,deny Allow from all

     

2.4配置:

     

Require all granted

来源:http://httpd.apache.org/docs/trunk/upgrading.html(在访问控制下)

注意:我将自定义设置分别保留在/private/etc/apache2/other/下。

答案 5 :(得分:3)

答案 6 :(得分:2)

就像@delphirules所说,你可以像这样复制旧的httpd.conf文件:

sudo cp /etc/apache2/httpd.conf.pre-update /etc/apache2/httpd.conf

我在整天连接到本地主机时遇到了问题,但终于找到了这个问题:https://mallinson.ca/web-development-with-el-capitan/

只需运行复制命令,然后执行sudo apachectl restart

我还在恢复模式下禁用了SIP(系统完整性保护)。我不知道它是否真的做了什么..你可以在这里找到这些说明:https://forums.developer.apple.com/thread/3981

答案 7 :(得分:0)

在升级到El Capitan之后,在用户级别启用自己以便为站点提供服务后,尝试访问本地站点目录中的页面时,我遇到了类似的问题。问题是Apache将httpd.conf文件重置为其默认值,这会禁用用户文件夹以从中加载文件。所以http://localhost加载正常,但http://localhost/~username/index.html不会加载。这是修复:

支持&#34;新&#34;已创建的配置文件:

sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf_capitan

恢复&#34; old&#34;重命名的配置文件:

sudo cp /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf

答案 8 :(得分:0)

如果您对DocumentRoot目录中的某些项目有符号链接,升级到El Capitan后,您可以获得这些项目的403,就像我一样。 您将需要以下内容才能使它们再次运行:

1)您的apache用户(默认情况下为_www)应具有对您所链接目录的目录的执行访问权限。 在我的apache DocumentRoot案例中,我有:

MyProject -> /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject

由于某种原因访问设置 /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject-rw------- 1 Me staff我的猜测是在OS x升级期间设置的。 因此,sudo chmod 755 Aptana\ Studio\ 3\ Workspace错误解决后。

2)由于升级也会更改httpd.conf,请确保将其用于DocumentRoot目录,或者如上所述从备份httpd.conf恢复:

Options Indexes FollowSymLinks

如果您从Mavericks或更早版本的OS x升级并恢复了备份httpd.conf,那么您应该像jcfranko所说的那样,将apache 2.2设置替换为请求权限:

Require all granted

答案 9 :(得分:0)

/Users/{user name}/Sites文件夹

中创建符号链接
ln -s /Path/To/Target/Files /Users/{user name}/Sites/{name}