web-dev-qa-db-fra.com

Autorisation Apache refusée

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?

16
Anonymous

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é sur mod_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.2 httpd.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 un Require all denied directive au lieu de Deny from all, et cela a priorité sur toutes les directives Allow 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.

29
Anonymous