Es ist schon eine Weile her, dass ich den Apache httpd Webserver verwendet habe. Ich starte einen lokalen Server für ein Projekt und wenn ich versuche, localhost / index.html anzufordern, wird ein Fehler von 500 angezeigt, der im Fehlerprotokoll angezeigt wird:
[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
Es sieht so aus, als ob es hier in der Apache-Konfiguration möglicherweise 2 Fehler gibt, einen im Zusammenhang mit "AuthType not set!" und möglicherweise ein anderer im Zusammenhang mit "Filter wurde nicht hinzugefügt: DEFLATE". Ich weiß nicht, was das bedeutet oder wo ich anfangen soll zu graben.
Eine einfache Google-Suche ergab diesen Link, der darauf hinweist, dass der Täter möglicherweise "Alle erforderlich benötigen" lautet. Diese Zeile in meiner httpd.conf ist möglicherweise beteiligt.
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
Diese Apache-Konfiguration wird hauptsächlich in der Produktion für dieses Projekt verwendet. Ich weiß also, dass dies funktioniert, nur derzeit nicht auf meiner Workstation. Was bedeutet das und was soll ich als nächstes versuchen? Ich habe versucht, "Alle erforderlich" auskommentieren und Apache neu starten, aber ohne Erfolg.
Nach dieser SO-Frage habe ich auch mod_authz_host geladen
LoadModule authz_host_module modules/mod_authz_host.so
und fügte hinzu "Von allen zulassen", startete den Server neu. aber das Problem bleibt bestehen. Das Deflate-Problem scheint nicht in Zusammenhang zu stehen und konnte leicht durch Hinzufügen gelöst werden
LoadModule deflate_module modules/mod_deflate.so
Die Frage bleibt, wie löse ich diesen 500-Fehler?
[Tue Jan 21 09:44:20 2014] [crit] [client ::1]
configuration error: couldn't perform authentication.
AuthType not set!: /index.html
Das Problem kann hier anders formuliert werden: Wie erstelle ich eine Konfiguration, die sowohl in Apache 2.2 als auch in Apache 2.4 funktioniert?
Require all granted
ist nur in 2.4,Allow all ...
funktioniert aber in 2.4 nicht mehr und wir möchten in der Lage sein, eine Konfiguration einzuführen, die in beiden funktioniert.Die einzige Lösung, die ich gefunden habe und bei der ich mir nicht sicher bin, ist die richtige:
Dies sollte Ihr Problem lösen oder zumindest für mich. Jetzt wird das Problem wahrscheinlich viel schwieriger zu lösen sein, wenn Sie komplexere Zugriffsregeln haben ...
Siehe auch diese ziemlich ähnliche Frage . Das Debian-Wiki enthält auch nützliche Anweisungen zur Unterstützung von 2.2 und 2.4 .
quelle
Alternativ funktioniert diese Lösung sowohl mit Apache2 Version <2.4 als auch mit> = 2.4. Stellen Sie sicher, dass das Modul "Version" aktiviert ist:
Und dann verwenden Sie stattdessen diesen Code:
quelle
Entfernen / kommentieren Sie einfach die folgende Zeile aus Ihrer httpd.conf-Datei (etc / httpd / conf).
Benötigen Sie alle gewährt
Dies wird bis Apache Version 2.2 benötigt und ist von da an nicht mehr erforderlich.
quelle
Ich denke, dass Sie eine Version 2.4.x von Apache haben.
Haben Sie sicher, dass Sie diese 2 Module laden? - mod_authn_core - mod_authz_core
PS: Meine Empfehlung für Autorisierung und Rechte lautet (standardmäßig):
quelle
httpd -l
?Sie können es versuchen,
sudo a2enmod rewrite
wenn Sie es in Ihrer Konfiguration verwenden.quelle