我最近将 Cent OS 7 上的 Apache 从 2.2 更新到了 2.4,更新之后,我无法访问根文件夹,
我收到以下错误:
[Fri Apr 29 16:30:19.977037 2016] [core:error] [pid 32095] [client 10.211.55.1:44429] AH00027: No authentication done but request not allowed without authentication for /. Authentication not configured?
如上所述这里在授权部分,您仍然可以通过加载模块(显然我已经加载了)来使用旧的指令 Order、Allow、Deny 和 Satisfy:
LoadModule access_compat_module modules/mod_access_compat.so
我的目录指令如下:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
我不太确定问题可能是什么,我真的很感激这里的一些帮助。
答案1
我不熟悉 Cent OS 默认目录结构,但您可能需要遵循如下操作:
<Directory />
Require all denied
AllowOverride None
Options None
</Directory>
<Directory /PATH ON SERVER TO YOUR DOCUMENT ROOT>
Require all granted
AllowOverride All
Options FollowSymLinks
</Directory>
要使用 Apache 2.4 指令,您需要加载mod_authz_core
LoadModule authz_core_module modules/mod_authz_core.so
如果您没有任何其他旧的(即 Order、Allow、Deny 和 Satisfy)访问控制指令,请注释掉 access_compat 模块:
#LoadModule access_compat_module modules/mod_access_compat.so
如果您有其他旧 2.2 访问控制实例,请尽可能更新它们以使用 Apache 2.4Require 指令或类似的 Apache 2.4 身份验证指令。混合使用新旧版本并不是一个好主意。如文档中所述,可能会出现“不可预测”的结果。
答案2
您需要允许apache读取权限;
<Directory />
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
应该管用
答案3
对于遇到相同问题的人来说,我的情况的解决方案是在 httpd.conf 文件中添加以下行:
LoadModule authn_core_module modules/mod_authn_core.so