ich bekomme
[Di 24 Apr 12:12:55 2012] [Fehler] [Client 127.0.0.1] Client von Serverkonfiguration abgelehnt: / labs / Projects / Nebula / bin /
Meine Verzeichnisstruktur sieht aus wie (ich verwende Symfony 2, sollte eine ähnliche Struktur für andere Webframeworks haben)
Ich habe vhosts eingerichtet wie:
<VirtualHost nebula:80>
DocumentRoot "/labs/Projects/Nebula/web/"
ServerName nebula
ErrorLog "/var/log/httpd/nebula-errors.log"
</VirtualHost>
<Directory "/labs/Projects/Nebula/">
Options All
AllowOverride All
Order allow,deny
Allow from 127.0.0 192.168.1 ::1 localhost
</Directory>
Ich frage mich, was das Problem ist und wie ich es behebe.
Antworten:
Apache 2.4.3 (oder möglicherweise etwas früher) hat eine neue Sicherheitsfunktion hinzugefügt, die häufig zu diesem Fehler führt. Außerdem wird eine Protokollmeldung des Formulars "Client von Serverkonfiguration abgelehnt" angezeigt. Für die Funktion ist eine autorisierte Benutzeridentität erforderlich, um auf ein Verzeichnis zugreifen zu können. Es wird von DEFAULT in der mit Apache gelieferten httpd.conf aktiviert. Sie können die Aktivierung der Funktion anhand der Direktive sehen
Dies bedeutet im Grunde, allen Benutzern den Zugriff zu verweigern. Um dieses Problem zu beheben, entfernen Sie entweder die abgelehnte Direktive (oder viel besser) und fügen Sie die folgende Direktive zu den Verzeichnissen hinzu, auf die Sie Zugriff gewähren möchten:
wie in
quelle
Satisfy Any
nach demRequire all granted
Satisfy any
in diesem Zusammenhang erklären ? Ich frage, weil ich mir hier die Haare ausgezogen habe und alles hinzugefügt hat, damit es für mich funktioniert. Das Seltsame ist, dass die App bis zu einem kürzlich durchgeführten Apache-Upgrade auf mit dem vorhandenen vhost-Eintrag gearbeitet hat2.4.9
. Noch seltsamer ist, dass es auf einem anderen Server mit denselben App / Vhost- und Apache / PHP-Versionen einwandfrei funktioniert. Unterschiedliche Server - AWS Linux und Ubuntu 14.10. Seltsam ... Ich denke, ich muss diehttpd.conf
Dateien jedes Servers vergleichen, um festzustellen, ob es dort einen Konfigurationsunterschied gibt ...htaccess
Pfad, auf den Sie zugreifenOK, ich verwende die falsche Syntax, die ich verwenden sollte
quelle
Require all granted
, wie von @ Phil-LIn Apache 2.4 wurde die alte Zugriffsberechtigungssyntax nicht mehr unterstützt und mit Require durch ein neues System ersetzt .
Was Sie dann wollen, ist so etwas wie das Folgende:
Dies ermöglicht Verbindungen, die entweder vom lokalen Host oder von IP-Adressen stammen, die mit "192.168.1" beginnen.
Es gibt auch ein neues Modul, mit dem Apache 2.4 die alte Syntax erkennt, wenn Sie Ihre Konfiguration nicht sofort aktualisieren möchten:
quelle
Können Sie versuchen, "Von 127.0.0 192.168.1 :: 1 localhost zulassen" in "Von allen zulassen" zu ändern? Wenn dies Ihr Problem behebt, müssen Sie weniger einschränken, wo Inhalte angefordert werden können
quelle
Hier ist meine virtuelle Symfony 1.4-Hostdatei auf Debian, die gut funktioniert.
Wenn Sie den Zugriff auf einen bestimmten IP-Bereich nicht einschränken möchten, z. B. localhost, verwenden Sie Folgendes:
Der mod_authz_host ist für das Filtern von IP-Bereichen verantwortlich. Dort können Sie detaillierte Informationen nachschlagen.
Aber vielleicht könnte das Problem mit einer Fehlkonfiguration in Ihrer "apache2.conf" zusammenhängen.
Auf welchem Betriebssystem läuft der Apache?
quelle
wenn Sie die haben
in httpd.conf dann stellen Sie sicher, dass wir haben
wie in der folgenden Zeile in httpd.conf
quelle
Ich hatte dieses Problem mit Vesta CP und für mich bestand der Trick darin, .htaccess zu entfernen und erneut zu versuchen, auf eine Datei zuzugreifen.
Das führte zur Neuerstellung der .htaccess-Datei und dann konnte ich auf meine Dateien zugreifen.
quelle
In meinem Fall war der Schlüssel:
in vhost Definition. Ich hoffe es hilft jemandem.
quelle
Dieser Code hat bei mir funktioniert ..
Hoffe das hilft anderen
quelle