Apache2 "Exiger tout octroyé" ne fonctionne pas


12

J'ai une nouvelle installation d'Apache2 sur les tests Debian et j'ai configuré un hôte virtuel dans un répertoire comme celui-ci:

<Directory "/path/to/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

Cependant, il me montre une erreur interdite 403 lorsque j'y accède et le journal des erreurs montre:

[Mon Sep 23 22:07:57.249276 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of Require all denied: denied
[Mon Sep 23 22:07:57.249349 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of <RequireAny>: denied
[Mon Sep 23 22:07:57.249361 2013] [authz_core:error] [pid 8599] [client 127.0.0.1:49057] AH01630: client denied by server configuration: /path/to/project/some_file

Pourquoi affiche-t-il "résultat de Exiger tout refusé: refusé" si j'utilise "Exiger tout accordé" ?

Ces fichiers sont lisibles par n'importe quel utilisateur et juste au cas où j'essaierais de changer le propriétaire en Apache (www-data) sans chance. De plus, l'hôte par défaut http://localhostfonctionne normalement et phpmyadmin http://localhost/phpmyadminfonctionne également.

Toute l'aide que j'ai trouvée sur Internet concerne le remplacement de la directive Order par Require. Je l'ai déjà fait. Quel pourrait être le problème maintenant?


Cela me semble correct. Êtes-vous sûr qu'il ne s'agit pas d'une autre directive plus spécifique avec une exigence tout refusée?
Richard Salts

Réponses:


5

Voici deux choses à essayer:

1) Exécutez apachectl -tpour vérifier que la syntaxe de votre fichier est valide.

2) Exécutez apachectl -Spour afficher les fichiers analysés.

Par exemple, vous pouvez éditer /usr/local/etc/apache2/2.4/httpd.conf et c'est vrai? ... mais si vous exécutez apachectl -S, vous pourriez voir:

VirtualHost configuration:
*:80                   localhost (/private/etc/apache2/extra/httpd-vhosts.conf:23)

c'est à dire. L'hôte virtuel remplace votre httpd.conf et peut contenir le sien Require all deniedou similaire.


3

Vous avez configuré une autorisation, mais aucune authentification. Ainsi, alors que le «Exiger tout octroyé» donnera accès à tous les utilisateurs authentifiés, vos utilisateurs ne s'authentifient pas réellement.


9
Alors, où devez-vous configurer l'authentification? Pas très clair ...
edi9999

2
Bien que techniquement correct, cela ne répond pas à la question. Require all grantedautorise spécifiquement tous les accès et ne nécessite aucune authentification. Il est inutile de s'authentifier lorsque vous ouvrez métaphoriquement les portes grandes ouvertes.
Martijn Heemels

2

Puisque vous utilisez la AllowOverride Alldirective, vous pouvez également avoir un .htaccessfichier dans /path/to/project/. Celui-ci peut contenir une directive remplacée.

Vérifiez également si vous n'avez pas d'autre paramètre dans un VHost par exemple.


Je me débattais avec cette erreur. Après avoir examiné de nombreux fichiers de configuration Apache, j'ai trouvé un fichier .htaccess avec un contenu non valide. Aucun des messages ne l'indiquait.
Dustin Butler

1

Après avoir installé Wampserver 32, j'ai eu le même problème d'être rejeté par Apache.

J'ai vérifié et essayé de modifier le httpd.conffichier de plusieurs façons pendant 3 jours sans chance, en parcourant les didacticiels Apache et les forums Internet avec la fameuse erreur:

AH01630: client refusé par la configuration du serveur

J'étais tout à fait sûr de n'avoir défini aucun VirtualHost et aucun n'était visible dans le fichier httpd.conf.

Enfin, j'ai configuré le serveur pour le fichier d'erreur "debug", ce qui m'a donné le message le plus intéressant:

AH01626: résultat d'autorisation de Require local: refusé

qui à son tour m'a conduit à ce poste.

Et il était là, caché dans le C:\wamp\bin\apache\apache2.4.18\conf\extra\httpd-vhosts.conffichier: un VirtualHost indésirable avec un "Require local" explicite qui bien sûr rejetait toutes mes requêtes de l'extérieur du serveur.

Maintenant, j'ai vidé ce fichier jusqu'à ce que j'aie besoin de VirtualHost, et cela fonctionne très bien. Au final, je trouve plutôt étrange de la part de Wampserver non seulement de préconfigurer ce fichier sans en avertir l'utilisateur mais de définir la valeur par défaut afin que le "serveur" ne puisse rien servir.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.