Apache 给出 403 禁止错误

新手上路,请多包涵

好的,所以我之前设置了两个虚拟主机,它们运行良好。它们都包含简单的 Web 项目,并且可以在浏览器中与 http://project1http://project2 一起正常工作。

无论如何,我来添加另一个虚拟主机。我用 127.0.0.1 project3 编辑了 /etc/hosts 文件,还通过复制和粘贴 project2 的先前条目并编辑文件路径来更新 httpd-vhosts.conf 文件。

我检查了所有文件和文件夹权限(实际上我是从 project2 复制和粘贴的),并在 index.php 文件中简单地放置了一条“hello world”消息。

访问 http://project3 时收到 403 禁止权限被拒绝消息

为什么会这样,我可以弄清楚我错过了哪一步,因为一切似乎都设置正确。

原文由 user2672288 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 425
2 个回答

检查:

  • Apache 可以物理访问文件(运行 apache 的用户,可能是 www-data 或 apache,可以访问文件系统中的文件)
  • Apache可以列出文件夹的内容(读取权限)
  • Apache 对该文件夹有一个“允许”指令。 /var/www/ 应该有一个,例如,您可以检查默认虚拟主机。

此外,您可以查看 error.log 文件(通常位于 /var/log/apache2/error.log ),该文件将准确描述您收到 403 错误的原因。

最后,您可能需要重新启动 apache,以确保应用了所有配置。这通常可以通过 /etc/init.d/apache2 restart 来完成。在某些系统上,该脚本将被称为 httpd。弄清楚。

原文由 blue112 发布,翻译遵循 CC BY-SA 4.0 许可协议

添加

<Directory "/path/to/webroot">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow, deny
        Allow from all
        Require all granted
</Directory>

这样做是告诉 Apache2 覆盖任何以前的配置,并在拒绝之前允许所有配置 (200)。 (403) 它还要求批准所有请求。这段代码必须放在每个 vhost 文件中,但它确实有效。我已经使用这个一年多了。

到您的配置文件(例如 /etc/apache2/sites-enabled/000-default.conf) 测试 LAMP 堆栈 Debian 11

原文由 EnderSlayer7692 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏