Apache的权限被拒绝(Apache permission denied)

2019-06-27 02:41发布

我刚刚安装了一个新的Apache和PHP的快速CGI 2.4.2在Windows上构建。

然后我修改httpd.conf中加入以下内容:

LoadModule fcgid_module modules/mod_fcgid.so  
FcgidInitialEnv PHPRC "C:/SITE/PHP"
AddHandler fcgid-script .php
FcgidWrapper "C:/SITE/PHP/php-cgi.exe" .php

DocumentRoot "C:/SITE/localhost/www"
<Directory "C:/SITE/localhost/www">
    Order allow,deny
    Allow from all
</Directory>

然而,当我尝试打开我的网站,它说:

Forbidden You don't have permission to access / on this server.

任何想法可能是什么问题?

Answer 1:

这是正确的方式做到这一点:(感谢DaveRandom)

<Directory "C:/SITE/localhost/www">
    Options ExecCGI
    AllowOverride all
    Require all granted
</Directory>

戴夫随机进一步解释说:

与此有点实验后,我发现,使这个正确的答案,这是针对Apache 2.3及以上版本的细微差别。 看来, mod_authz_host指令优先于mod_access_compat指令,而这个泡沫一路目录树。 这意味着,如果要迁移Apache的2.2到Apache 2.4和您使用2.2 httpd.conf逐字,它会工作。

但是,如果您执行新安装的2.4和底座上的默认2.4你的配置httpd.confAllow指令将无法正常工作,因为默认的顶层部分采用一个Require all denied指令,而不是Deny from all了,这优先于任何后续Allow指令上涨树。 长短期的这种的是,如果要迁移您的订单/允许/拒绝指令为等效的要求,那么你一定几率所有的人,否则你会发现你得到你没有想到403S。



文章来源: Apache permission denied