17

我刚刚从 Yosemite 升级到 El Capitan,但不幸的是忘记复制我的旧 httpd.conf,现在我需要重新配置它的所有设置。

我已经把documentroot改成了之前的/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 时也会收到“禁止”错误。

我在这里缺少什么?

4

10 回答 10

73

请执行下列操作:

  • 打开终端
  • 跑:

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

在这个问题上花了 3 个小时后 - 这我有用!

于 2015-10-19T17:45:49.583 回答
18

I just found out that the old .conf file is saved during the El Captain update, in this folder :

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

So i just copied the old definitions to the new one :)

于 2015-10-01T16:19:22.190 回答
9

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

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

于 2015-10-02T00:56:08.333 回答
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),所以我从未偶然发现过这个。

我希望这个信息可以帮助某人

于 2015-10-03T14:39:49.407 回答
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/.

于 2015-10-05T20:05:27.333 回答
3

这也有帮助(在做了其他所有事情之后):

http://coolestguidesontheplanet.com/forbidden-403-you-dont-have-permission-to-access-username-on-this-server/

于 2016-01-15T14:58:48.523 回答
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

于 2015-10-07T22:37:38.160 回答
0

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

备份创建的“新”配置文件:

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

恢复被重命名的“旧”配置文件:

sudo cp /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
于 2015-10-07T21:55:56.193 回答
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
于 2015-10-26T11:02:17.037 回答
0

/Users/{user name}/Sites在您的文件夹中创建符号链接

ln -s /Path/To/Target/Files /Users/{user name}/Sites/{name}
于 2016-07-24T20:29:41.230 回答