Apache: "AuthType nicht gesetzt!" 500 Fehler

98

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
user3220334
quelle

Antworten:

183

Entfernen Sie die Zeile mit der Aufschrift

Require all granted

Es wird nur für Apache> = 2.4 benötigt

Stefan
quelle
1
Oder verwenden Sie alternativ die Syntax <IfVersion> ... siehe meine Antwort unten.
pkout
Tolle Lösung - es hat zu lange gedauert, sie zu finden. Vielen Dank!
AlienWebguy
In OS X MAMP Apache 2.2 wechseln Sie von "Alle erforderlich" zu "Befriedigen Sie alle"
Matilda Yi Pan
49

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 grantedist 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:

# backwards compatibility with apache 2.2
Order allow,deny
Allow from all

# forward compatibility with apache 2.4
Require all granted
Satisfy Any

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 .

anarcat
quelle
i gezielt verbunden , die beiden Schnipsel so arbeiten sie in den beiden hier Versionen, bitte nicht wieder trennen.
Anarcat
1
Lief wie am Schnürchen. Vielen Dank!
Anna Wellington
34

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:

a2enmod version

Und dann verwenden Sie stattdessen diesen Code:

<IfVersion < 2.4>
    Allow from all
</IfVersion>
<IfVersion >= 2.4>
    Require all granted
</IfVersion>
pkout
quelle
Sie können auch mit dieser Antwort gehen, um zu vermeiden, dass ein anderes Modul aktiviert wird: stackoverflow.com/questions/10707186/…
Stefan
3

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.

CodedCoder
quelle
0

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

LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so

PS: Meine Empfehlung für Autorisierung und Rechte lautet (standardmäßig):

LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
Georgio
quelle
Danke Georgio, eigentlich habe ich die auth {n | z} _core-Module nicht in meinem Modulverzeichnis.
user3220334
Sie sehen diese Module trotzdem mit httpd -l?
Georgio
Ich frage mich, sollte ich diese separat bauen? Dies ist die sofort einsatzbereite Installation von 2.2.15 unter CentOS `apachectl -version Serverversion: Apache / 2.2.15 (Unix) Server erstellt: 13. August 2013 17: 29: 28`
user3220334
Arf, sorry, du benutzt Apache 2.2.x und nicht 2.4.x. Module haben keinen gleichen Namen. Die Module sind: mod_authn_file.c mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic
Georgio
Cool, danke für die Liste, ich habe sie alle hinzugefügt und neu gestartet, erhalte aber immer noch den Fehler.
user3220334
0

Sie können es versuchen, sudo a2enmod rewritewenn Sie es in Ihrer Konfiguration verwenden.

Saian
quelle