【问题标题】:OSX El Capitan - Apache 403 ForbiddenOSX El Capitan - Apache 403 Forbidden
【发布时间】:2015-12-29 18:36:45
【问题描述】:

我刚刚从 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 时也会收到“禁止”错误。

我在这里缺少什么?

【问题讨论】:

    标签: macos apache osx-elcapitan


    【解决方案1】:

    执行以下操作:

    • 打开终端
    • 运行:

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

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

    【讨论】:

    • 如果您有一台全新的 Mac,请将其用作第三个命令:sudo mv httpd.conf.pre-update httpd.conf 你真的,真的拯救了我的一天!
    • 这个答案可能适用于大多数人,因为它解决了主要问题 - 您的 httpd.conf 文件现在不正确。但是它对我不起作用,但是这个很棒的指南 medium.com/@JohnFoderaro/… 让我将我的 httpd.conf 更新到现在可以工作的地方
    • 这适用于我在 2017 MacBook 上运行的 10.14.6。我很好奇你在这些命令中完成了什么。看起来您正在将 httpd.conf 恢复到以前的版本,但是为什么会这样呢??
    【解决方案2】:

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

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

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

    【讨论】:

    • 虽然接受的答案很有效并且很容易做到,但它并没有专门解决问题。恢复旧的 apache 配置会回滚对为 El Captain 所做的 apache 配置所做的任何更新......有点像用蜡烛代替(以双曲线方式)修复坏灯。 @jcfranco 和 Todd Hammer 在下面有一些专门解决权限问题的答案。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      我希望这些信息对某人有所帮助

      【讨论】:

      • 好,救了我一天。如果您使用虚拟主机,请不要忘记在 /etc/apache2/extras/httpd-vhosts.conf 中添加此定义;)
      【解决方案5】:

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

      在本例中,所有请求都被允许。

      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/ 下。

      【讨论】:

        【解决方案6】:

        【讨论】:

          【解决方案7】:

          就像@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

          【讨论】:

            【解决方案8】:

            在升级到 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
            

            【讨论】:

              【解决方案9】:

              如果您在 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
              

              【讨论】:

                【解决方案10】:

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

                ln -s /Path/To/Target/Files /Users/{user name}/Sites/{name}
                

                【讨论】:

                  猜你喜欢
                  • 2014-10-03
                  • 2016-06-24
                  • 2016-01-05
                  • 2016-11-03
                  • 1970-01-01
                  • 2017-04-20
                  • 2016-01-27
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多