Cela fait un moment que j'utilise le serveur Web Apache httpd. Je lance un serveur local pour un projet et lorsque j'essaie de demander localhost / index.html, j'obtiens une erreur 500 et je vois ceci dans le journal des erreurs:
[Tue Jan 21 09:23:58 2014] [crit] [client ::1] configuration error: couldn't perform authentication. AuthType not set!: /index.html
[Tue Jan 21 09:23:58 2014] [error] an unknown filter was not added: DEFLATE
[Tue Jan 21 09:23:58 2014] [crit] [client ::1] configuration error: couldn't perform authentication. AuthType not set!: /favicon.ico
Il semble qu'il y ait peut-être 2 erreurs ici dans la configuration d'Apache, une liée à "AuthType not set!" et peut-être un autre lié à "le filtre n'a pas été ajouté: DEFLATE". Je ne sais pas ce que cela signifie ni par où commencer à creuser.
Une recherche Google de base a révélé ce lien qui indique que le coupable peut être "Exiger tout accordé". Cette ligne dans mon httpd.conf peut être impliquée.
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
Cette configuration Apache est principalement ce qui est utilisé en production pour ce projet, donc je sais que cela fonctionne, mais pas actuellement sur mon poste de travail. Qu'est-ce que cela signifie et que dois-je essayer ensuite? J'ai essayé de commenter "Exiger tout accordé" et de redémarrer Apache mais en vain.
Suite à cette question SO, j'ai également chargé mod_authz_host
LoadModule authz_host_module modules/mod_authz_host.so
et ajouté "Autoriser de tous", redémarré le serveur ,. mais le problème persiste. Le problème de dégonflage ne semble pas lié et a été facilement résolu en ajoutant
LoadModule deflate_module modules/mod_deflate.so
La question demeure, comment résoudre cette erreur 500?
[Tue Jan 21 09:44:20 2014] [crit] [client ::1]
configuration error: couldn't perform authentication.
AuthType not set!: /index.html
Le problème ici peut être formulé d'une autre manière: comment créer une configuration qui fonctionne à la fois dans Apache 2.2 et 2.4?
Require all granted
est seulement en 2.4, maisAllow all ...
cesse de fonctionner dans 2.4, et nous voulons pouvoir déployer une configuration qui fonctionne dans les deux.La seule solution que j'ai trouvée, dont je ne suis pas sûr d'être la bonne, est d'utiliser:
Cela devrait résoudre votre problème, ou du moins l'a fait pour moi. Maintenant, le problème sera probablement beaucoup plus difficile à résoudre si vous avez des règles d'accès plus complexes ...
Voir aussi cette question assez similaire . Le wiki Debian contient également des instructions utiles pour prendre en charge les versions 2.2 et 2.4 .
la source
Alternativement, cette solution fonctionne à la fois avec la version Apache2 <2.4 ainsi qu'avec> = 2.4. Assurez-vous que le module "version" est activé:
Et puis utilisez ce code à la place:
la source
Supprimez / commentez simplement la ligne suivante de votre fichier httpd.conf (etc / httpd / conf)
Exiger tout accordé
Ceci est nécessaire jusqu'à la version 2.2 d'Apache et n'est plus nécessaire à partir de là.
la source
Je pense que vous avez une version 2.4.x d'Apache.
Êtes-vous sûr de charger ces 2 modules? - mod_authn_core - mod_authz_core
PS: Ma recommandation d'autorisation et de droits est (par défaut):
la source
httpd -l
?Vous pouvez essayer
sudo a2enmod rewrite
si vous l'utilisez dans votre config.la source