Procédure
Betroffener Dienst : gemeinsames Webhosting LWS Panel
Betroffenes Panel : LWS Panel
Stufe : mittel
Der Fehler open_basedir restriction in effect erscheint, wenn ein PHP-Skript versucht, auf eine Datei oder einen Ordner außerhalb des für Ihr Hosting erlaubten Bereichs zuzugreifen.
Er kann insbesondere nach der Migration einer Website auftreten, aufgrund eines alten in der Konfiguration gespeicherten Pfads, einer falsch konfigurierten Erweiterung oder eines benutzerdefinierten Skripts.
Bewahren Sie vor der Änderung eine Kopie der Datei auf. Sie sollten außerdem die vollständige Fehlermeldung haben, um den verweigerten Pfad und die für das Problem verantwortliche PHP-Datei zu identifizieren.
Die Meldung kann beispielsweise so aussehen:
Warning: include(): open_basedir restriction in effect.
File(/home/ancien-hebergeur/public_html/config.php)
is not within the allowed path(s):
(/var/www/exemple.com/htdocs/:/tmp/)
in /var/www/exemple.com/htdocs/index.php on line 24Sie enthält mehrere nützliche Informationen :
/home/ancien-hebergeur/public_html/config.php ist die Datei, auf die das Skript zugreifen möchte ;/var/www/exemple.com/htdocs/ entspricht dem Bereich, in dem die Dateien Ihrer Website verwendet werden können ;/var/www/exemple.com/htdocs/index.php ist das Skript, das versucht hat, die Datei zu öffnen ;line 24 gibt die betreffende Zeile in diesem Skript an.In diesem Beispiel verwendet die Website noch einen Pfad aus einem alten Hosting. PHP blockiert daher den Zugriff auf die Datei.
Wenn Ihre Website nur eine leere Seite oder einen 500-Fehler anzeigt, prüfen Sie die Hosting-Protokolle:
open_basedir restriction in effect.Die neuesten Zeilen befinden sich in der Regel am Ende des Protokolls.
Im LWS Panel befinden sich die öffentlichen Dateien einer Website normalerweise in einem Verzeichnis wie diesem:
/var/www/votre-domaine.fr/htdocs/Ersetzen Sie votre-domaine.fr durch den betreffenden Domainnamen.
Prüfen Sie anschließend im Dateimanager oder per FTP, ob sich die gesuchte Datei tatsächlich in diesem Verzeichnis oder in einem seiner Unterordner befindet.
Der falsche Pfad kann gespeichert sein :
Suchen Sie zunächst nach dem charakteristischen Teil des alten Pfads, zum Beispiel :
/home/ancien-hebergeur/Ändern Sie interne Dateien von WordPress, PrestaShop oder einer anderen Anwendung nicht blind. Prüfen Sie zunächst die Konfiguration der im Fehlermeldung genannten Erweiterung oder des Moduls.
Ersetzen Sie den alten Pfad durch den tatsächlichen Pfad der Datei auf Ihrem LWS-Hosting.
Zum Beispiel :
Alter Pfad :
/home/ancien-hebergeur/public_html/cache/
Neuer Pfad :
/var/www/votre-domaine.fr/htdocs/cache/Bei einem benutzerdefinierten PHP-Skript ist es oft besser, den Pfad ausgehend vom Verzeichnis des Skripts zu erstellen, statt den vollständigen Serverpfad zu speichern.
Zum Beispiel :
require __DIR__ . '/config.php';Diese Schreibweise ermöglicht es dem Skript, config.php in seinem eigenen Verzeichnis zu suchen.
Die Direktive open_basedir kann auf LWS Panel nicht über eine .user.ini-Datei geändert oder deaktiviert werden.
Dieser Schutz darf nicht umgangen werden. Sie müssen den von der Website, dem Skript oder der Erweiterung verwendeten Pfad korrigieren.
Nachdem Sie den Pfad korrigiert haben, leeren Sie den Cache über die Benutzeroberfläche Ihres CMS oder Ihrer Anwendung.
Ein alter Pfad kann auch nach der Änderung der Konfiguration noch in einer Cache-Datei gespeichert bleiben.
Wiederholen Sie genau die Aktion, die den Fehler verursacht hat: Öffnen Sie die betreffende Seite, senden Sie das Formular oder starten Sie die unterbrochene Operation erneut.
Prüfen Sie anschließend erneut die PHP-Protokolle. Es darf keine neue Zeile open_basedir restriction in effect erscheinen.
Die Korrektur ist abgeschlossen, wenn die betreffende Seite oder Funktion wieder funktioniert und keine neue open_basedir-Fehler in den PHP-Protokollen erscheinen.
Ich sehe nur einen 500-Fehler oder eine leere Seite
Die vollständige Meldung ist wahrscheinlich in den PHP-Protokollen gespeichert. Öffnen Sie das Tool Apache / PHP-Logs im LWS Panel und reproduzieren Sie den Fehler, bevor Sie das Protokoll aktualisieren.
Der angegebene Pfad entspricht meinem alten Hoster
Ein absoluter Pfad wurde während der Migration nicht aktualisiert. Suchen Sie diesen Pfad in den Konfigurationsdateien, den Einstellungen der Erweiterungen und den benutzerdefinierten Skripten.
Ersetzen Sie ihn durch den aktuellen Pfad Ihrer Website auf dem LWS Panel.
Ich finde nicht, wo der Pfad gespeichert ist
Sehen Sie sich den Namen der am Ende der Fehlermeldung angezeigten PHP-Datei an. Er ermöglicht oft, die betreffende Anwendung, das Theme, die Erweiterung oder das Skript zu identifizieren.
Bei einer Erweiterung prüfen Sie zuerst deren Einstellungen für Cache, Import, Sicherung oder temporäre Dateien.
Die Datei befindet sich im Ordner htdocs, aber der Fehler bleibt bestehen
Prüfen Sie, ob der vom Skript verwendete Pfad exakt dem tatsächlichen Speicherort der Datei entspricht.
Ein symbolischer Link kann ebenfalls scheinbar auf eine Datei der Website verweisen, während er PHP zu einem Speicherort außerhalb des erlaubten Bereichs führt. Ersetzen Sie in diesem Fall den Link durch einen direkten Zugriff auf eine Datei im Verzeichnis der Website.
Der Fehler tritt nach der Änderung erneut auf
Leeren Sie den Cache Ihrer Anwendung und reproduzieren Sie dann das Problem. Prüfen Sie außerdem, ob der Pfad an mehreren Stellen gespeichert ist.
Stellen Sie sie dem LWS-Team und der Community. Die Antwort wird nach Moderation veröffentlicht.