我刚刚在windows上安装了一个新的Apache 2.4.2和Php fast cgi。
然后我修改了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.
你知道问题出在哪里吗?
发布于 2012-08-17 02:23:19
这是正确的方法:(感谢DaveRandom)
<Directory "C:/SITE/localhost/www">
Options ExecCGI
AllowOverride all
Require all granted
</Directory>
Dave Random进一步解释道:
在对此进行了一些实验之后,我发现了使这个问题成为正确答案的细微差别,这是特定于
2.3+的。似乎
mod_authz_host
指令优先于mod_access_compat
指令,这在目录树中一直向上冒泡。这意味着如果您正在从Apache2.2迁移到Apache2.4,并且您逐字使用2.2的httpd.conf
,那么它将会工作。
但是,如果执行2.4的新安装并基于默认的2.4 httpd.conf
进行配置,则Allow
指令将不起作用,因为默认的顶级部分使用Require all denied
指令而不是Deny from all
,并且该指令优先于树中更高层的任何后续Allow
指令。简而言之,如果您正在将Order/Allow/Deny指令迁移到其等效的要求,那么您必须尝试所有这些指令,否则您会发现您得到了意想不到的403。
https://stackoverflow.com/questions/11992466
复制相似问题