Apache2“需要全部授予”不起作用


12

我在Debian测试中全新安装了Apache2,并在这样的目录中配置了虚拟主机:

<Directory "/path/to/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

但是,当我访问它时,它向我显示403禁止错误,并且错误日志显示:

[Mon Sep 23 22:07:57.249276 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of Require all denied: denied
[Mon Sep 23 22:07:57.249349 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of <RequireAny>: denied
[Mon Sep 23 22:07:57.249361 2013] [authz_core:error] [pid 8599] [client 127.0.0.1:49057] AH01630: client denied by server configuration: /path/to/project/some_file

如果我使用的是“要求全部被授予”,为什么它显示“要求全部被拒绝的结果:被拒绝

他们的文件可以被任何用户读取,以防万一我尝试将所有者更改为Apache(www-data)时不走运。另外,默认主机http://localhost可以正常工作,而phpmyadmin http://localhost/phpmyadmin也可以正常工作。

我在Internet上找到的所有帮助都是关于用Require替换Order指令。我已经做到了。现在可能是什么问题?


在我看来,这是正确的。您确定它们不是某些特定于“全部拒绝”的指令吗?
理查德·萨尔斯

Answers:


5

这里有两个尝试:

1)运行apachectl -t以检查文件语法是否有效。

2)运行apachectl -S以显示正在解析的文件

例如,您可能正在编辑/usr/local/etc/apache2/2.4/httpd.conf,对吗?...但是如果您运行apachectl -S,您可能会看到:

VirtualHost configuration:
*:80                   localhost (/private/etc/apache2/extra/httpd-vhosts.conf:23)

即。虚拟主机将覆盖您的httpd.conf,并且可能包含其自己的Require all denied或相似的主机。


3

您已经设置了授权,但没有身份验证。因此,尽管“要求所有被授予的权限”将为所有经过身份验证的用户提供访问权限,但您的用户实际上并未进行身份验证。


9
那么,您应该在哪里设置认证?不太清楚...
edi9999

2
尽管从技术上讲是正确的,但这并不能解决问题。Require all granted专门允许所有访问,不需要任何身份验证。当您隐喻地将门敞开时,没有必要进行身份验证。
Martijn Heemels,2017年

2

由于您使用的是AllowOverride All指令,因此您可能在中也有一个.htaccess文件/path/to/project/。这可能包含一个覆盖指令。

还请检查您是否在VHost中没有其他参数,例如。


我正在为这个错误而苦苦挣扎。经过大量检查所有Apache配置文件后,我发现了一个内容无效的.htaccess文件。没有消息指出这一点。
Dustin Butler

1

安装Wampserver 32之后,我遇到了被Apache拒绝的相同问题。

我已经检查并尝试以httpd.conf多种方式修改文件3天,但没有运气,到处都是Apache教程和Internet论坛,但都出现了著名的错误:

AH01630:客户端被服务器配置拒绝

我非常确定我没有定义任何VirtualHost,在httpd.conf文件中也看不到任何虚拟主机。

最后,我为服务器配置了“调试”错误文件,这给了我更有趣的消息:

AH01626:需要本地授权结果:已拒绝

这又将我引到了这篇文章。

它被隐藏在C:\wamp\bin\apache\apache2.4.18\conf\extra\httpd-vhosts.conf文件中:一个不需要的VirtualHost,它带有显式的“ Require local”,这当然拒绝了我从服务器外部进行的所有查询。

现在,我清空了此文件,直到可能需要任何VirtualHost,并且它运行正常。最后,我发现对于Wampserver而言,不仅预配置此文件而不通知用户,而且设置默认值以使“服务器”不能提供任何服务,这是很奇怪的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.