Ano*_*ous 16 php apache permissions httpd.conf
我刚刚在Windows上安装了一个带有Php fast cgi build的新Apache 2.4.2.
然后我修改了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>
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试打开我的网站时,它说:
Forbidden You don't have permission to access / on this server.
任何想法可能是什么问题?
Ano*_*ous 29
这是正确的方法:(感谢DaveRandom)
<Directory "C:/SITE/localhost/www">
Options ExecCGI
AllowOverride all
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
Dave Random进一步解释:
经过一些实验,我发现了一个细微差别,使得这个问题成为正确的答案,这是Apache 2.3+特有的.似乎
mod_authz_host指令优先于mod_access_compat指令,并且在目录树中一直存在.这意味着如果您从Apache 2.2迁移到Apache 2.4并且您使用2.2httpd.conf逐字,它将起作用.但是,如果执行2.4的新安装并将配置基于默认的2.4
httpd.conf,则Allow指令将不起作用,因为默认的顶级部分使用Require all denied指令而不是Deny from all,并且这优先于Allow树上方的任何后续指令.除此之外,如果你将Order/Allow/Deny指令迁移到它们的等效需求,那么你必须有机会所有这些或者你会发现你得到了你没想到的403s.