![Apache 的“403 Forbidden”错误信息仅当从其他机器调用该页面时](https://linux22.com/image/616517/Apache%20%E7%9A%84%E2%80%9C403%20Forbidden%E2%80%9D%E9%94%99%E8%AF%AF%E4%BF%A1%E6%81%AF%E4%BB%85%E5%BD%93%E4%BB%8E%E5%85%B6%E4%BB%96%E6%9C%BA%E5%99%A8%E8%B0%83%E7%94%A8%E8%AF%A5%E9%A1%B5%E9%9D%A2%E6%97%B6.png)
我最近通过从源代码编译它来更新我Ubuntu
的,但副作用是我遇到了一个奇怪的行为。Apache
2.4
可以Apache
在本地提供文件,但不能在其他机器上提供。例如,当我在同一台机器上输入我机器的本地 IP 192.168.0.81 时,它会打开页面。但当我在其他机器上(在同一网络上)输入它时,它会给出“禁止 403”错误响应。
以下是我已经测试过的场景:
关闭 Apache 以确保 403 是由正确的 Apache 生成的。结果是肯定的,一旦关闭就不会产生任何响应。
如前所述,使用本地网络 IP(192.168.0.81)加载页面,以确保 Apache 正在监听它,而不仅仅是 127.0.0.1。结果是肯定的,该页面可以在 Apache 所在的同一台机器上加载(但不能在其他机器上加载)。
测试 Apache 的日志:没有结果。access_log 和 error_log 中均无任何记录。或者至少我找不到它!
我个人认为,当 Apache 为本地请求提供文件时,它是代表某个用户执行此操作,但当请求来自其他计算机时,用户会发生变化,并且他(无论他是谁)没有足够的访问权限,从而导致“禁止 403”错误。因此,为了测试这一点,我将所有文件的模式更改为 777,但仍然没有成功。
有什么建议么?
答案1
从 2.2 版开始,配置选项(包括访问控制部分)已经发生改变。
您需要检查 apache 配置的访问权限并Require all granted
在需要的地方添加字符串。