AH00027:从 Apache 2.2 升级到 2.4 后未出现身份验证完成错误

AH00027:从 Apache 2.2 升级到 2.4 后未出现身份验证完成错误

我最近将 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

相关内容