Je viens d'installer un nouvel Apache 2.4.2 avec Php fast cgi build sur windows.
J'ai ensuite modifié le httpd.conf en ajoutant ce qui suit:
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>
Cependant, lorsque j'essaie d'ouvrir mon site, cela dit:
Forbidden You don't have permission to access / on this server.
Des idées quel pourrait être le problème?
C'était la bonne façon de le faire: (merci à DaveRandom)
<Directory "C:/SITE/localhost/www">
Options ExecCGI
AllowOverride all
Require all granted
</Directory>
Dave Random explique plus en détail:
Après un peu d'expérimentation avec cela, j'ai découvert la nuance qui en fait la bonne réponse, qui est spécifique à Apache 2.3+. Il paraît que
mod_authz_Host
les directives ont priorité surmod_access_compat
directives, et cela bouillonne tout le long de l'arborescence des répertoires. Cela signifie que si vous migrez d'Apache 2.2 vers Apache 2.4 et que vous utilisez votre 2.2httpd.conf
textuellement, cela fonctionnera.Si, toutefois, vous effectuez une nouvelle installation de 2.4 et basez votre configuration sur la valeur par défaut 2.4
httpd.conf
,Allow
les directives ne fonctionneront pas, car la section de niveau supérieur par défaut utilise unRequire all denied
directive au lieu deDeny from all
, et cela a priorité sur toutes les directivesAllow
suivantes plus haut dans l'arborescence. Le long du court est que si vous migrez vos directives Order/Allow/Deny vers leur équivalent Requiert, alors vous devez toutes les chance ou vous trouverez que vous obtenez 403s que vous ne vous attendiez pas.