Berechtigung verweigert: /home/.htaccess pcfg_openfile: htaccess-Datei kann nicht überprüft werden

13

Diese Domain hat heute Morgen funktioniert, jetzt erhalte ich einen 403-Fehler und die obige Meldung in meinem Fehlerprotokoll. Ich verwende keine .htaccess-Dateien, aber ich habe eine Kopie auf dem Server erstellt, sodass möglicherweise Fehler aufgetreten sind, diese Domain jedoch nicht geändert wurde (außer aus Versehen!). Was ist diese pcfg_openfile-Sache überhaupt?

Viel googeln, aber keine der Lösungen schien diesen Umständen zu entsprechen. Der Server ist Ubuntu Hardy Heron.

user19196
quelle

Antworten:

19

Sie haben wahrscheinlich die Berechtigungen für das Verzeichnis (oder eines der übergeordneten Verzeichnisse) geändert, in dem der Webserver nach .htaccess sucht, sodass der Webserver nicht mehr prüfen kann, ob eine .htaccess-Datei vorhanden ist.

Korrigieren Sie zuerst die Berechtigungen für das Verzeichnis (muss vom Web-Server-Prozess auf Empfang gesetzt werden, also 755 oder 775, je nachdem, ob das Verzeichnis gruppenbeschreibbar sein soll oder nicht). Beachten Sie, dass Sie sicherstellen müssen, dass die Berechtigungen aller übergeordneten Verzeichnisse, die im Dateisystem-Stammverzeichnis (dh /) gesichert werden, vom Webserver empfangen werden.

Wenn Sie keine .htaccess-Dateien verwenden und nicht beabsichtigen, diese in Zukunft zu verwenden (dh, Sie möchten Ihre gesamte Konfiguration in httpd.conf / apache.conf speichern), deaktivieren Sie htaccess-Dateien in der Apache-Konfiguration.

Es gibt eine kleine Leistungseinbuße für das Überprüfen, Einlesen und Parsen von .htaccess-Dateien im aktuellen Verzeichnis und in jedem übergeordneten Verzeichnis bis zum Dokumentenstamm. Es ist sehr klein, aber es summiert sich, wenn es viele Anfragen gibt.

cas
quelle
Spot on. Ich hatte es jemandem geschafft, die Berechtigungen für das Verzeichnis / home zu ändern, und das hatte alles andere durcheinander gebracht. Vielen Dank!
user19196
2

Wenn es nicht offensichtlich ist, dass .htaccess vom Server nicht gelesen werden kann (entweder 0755 oder .htacess, und der Rest des Baums befindet sich in der Gruppe www-data), suchen Sie nach einem höheren Verzeichnisstamm, nur unter onwer: group, das *** * nicht **** haben Weltausführungszugriff.

Damit Apache eine Datei findet, muss er den Baum durchsuchen. Dies ist nicht möglich, wenn ein Verzeichnis namens root: root keinen globalen Ausführungszugriff hat.

Ich bin ein paar Mal darüber gestolpert .... :-)

John Logsdon
quelle
"Dies ist nicht möglich, wenn ein Verzeichnis namens root: root keinen globalen Ausführungszugriff hat." Das stimmt nicht immer. Wenn Sie suPHP ausführen, wird PHP als Dateieigentümer ausgeführt. Theoretisch sollten Sie in der Lage sein, den Zugriff von Apache zu testen, indem Sie zu dem Benutzer wechseln, der die Datei besitzt, und prüfen, ob Sie dorthin navigieren können.
Buttle Butkus