Apache2 "Alle erforderlich" funktioniert nicht


11

Ich habe eine Neuinstallation von Apache2 beim Debian-Testen und einen virtuellen Host in einem Verzeichnis wie dem folgenden konfiguriert:

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

Es zeigt mir jedoch einen 403 Forbidden-Fehler, wenn ich darauf zugreife, und das Fehlerprotokoll zeigt:

[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

Warum wird "Ergebnis von Alle erforderlich verweigert: verweigert " angezeigt, wenn ich "Alle erforderlich benötigen" verwende ?

Diese Dateien sind für jeden Benutzer lesbar und nur für den Fall, dass ich ohne Glück versucht habe, den Besitzer in Apache (www-data) zu ändern. Außerdem http://localhostfunktioniert der Standardhost auf normal und phpmyadmin http://localhost/phpmyadminauch.

Alle Hilfe, die ich im Internet gefunden habe, besteht darin, die Order-Direktive durch Require zu ersetzen. Das habe ich schon gemacht. Was könnte jetzt das Problem sein?


Es sieht für mich richtig aus. Sind Sie sicher, dass es sich nicht um eine andere Richtlinie handelt, die spezifischer ist, wenn "Alle ablehnen" verweigert wird?
Richard Salts

Antworten:


5

Hier sind zwei Dinge zu versuchen:

1) Führen Sie aus apachectl -t, um zu überprüfen, ob die Syntax Ihrer Datei gültig ist.

2) Führen Sie aus apachectl -S, um anzuzeigen , welche Dateien analysiert werden.

Zum Beispiel können Sie /usr/local/etc/apache2/2.4/httpd.conf bearbeiten und das ist es richtig? ... aber wenn Sie apachectl -S ausführen, sehen Sie möglicherweise:

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

dh. Der virtuelle Host überschreibt Ihre httpd.conf und enthält möglicherweise eine eigene Require all deniedoder eine ähnliche.


3

Sie haben eine Autorisierung eingerichtet, aber keine Authentifizierung. Während "Alle erforderlich benötigen" allen authentifizierten Benutzern Zugriff gewährt, authentifizieren sich Ihre Benutzer nicht wirklich.


9
Wo sollten Sie die Authentifizierung einrichten? Nicht sehr klar ...
edi9999

2
Dies ist zwar technisch korrekt, beantwortet jedoch nicht die Frage. Require all grantedErmöglicht speziell den gesamten Zugriff und benötigt keine Authentifizierung. Es macht keinen Sinn, sich zu authentifizieren, wenn Sie die Türen metaphorisch weit öffnen.
Martijn Heemels

2

Da Sie die AllowOverride AllDirektive verwenden, haben Sie möglicherweise auch eine .htaccessDatei in /path/to/project/. Diese kann eine Überschreibungsanweisung enthalten.

Überprüfen Sie auch, ob Sie beispielsweise keinen anderen Parameter in einem VHost haben.


Ich hatte mit diesem Fehler zu kämpfen. Nachdem ich alle Apache-Konfigurationsdateien überprüft hatte, fand ich eine .htaccess-Datei mit ungültigem Inhalt. Keine der Nachrichten wies darauf hin.
Dustin Butler

1

Nach der Installation von Wampserver 32 hatte ich das gleiche Problem, von Apache abgelehnt zu werden.

Ich habe die httpd.confDatei 3 Tage lang ohne Glück auf viele Arten überprüft und versucht, sie zu durchlaufen. Dabei habe ich die Apache-Tutorials und Internetforen mit dem berühmten Fehler durchgesehen:

AH01630: Client von Serverkonfiguration abgelehnt

Ich war mir ziemlich sicher, dass ich keinen VirtualHost definiert habe und keiner in der Datei httpd.conf zu sehen war.

Schließlich habe ich den Server für die Fehlerdatei "Debug" konfiguriert, was mir die interessantere Meldung gab:

AH01626: Autorisierungsergebnis von Require local: verweigert

was mich wiederum zu diesem Beitrag führte.

Und da war es, versteckt in der C:\wamp\bin\apache\apache2.4.18\conf\extra\httpd-vhosts.confDatei: ein unerwünschter VirtualHost mit einem expliziten "Require local", der natürlich alle meine Anfragen von außerhalb des Servers zurückwies.

Jetzt habe ich diese Datei geleert, bis ich möglicherweise einen VirtualHost benötige, und sie funktioniert einwandfrei. Am Ende finde ich es ziemlich seltsam von Wampserver, diese Datei nicht nur vorab zu konfigurieren, ohne den Benutzer zu benachrichtigen, sondern den Standardwert so festzulegen, dass der "Server" nichts bedienen kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.