Beheben des PHP-Fehlers „open_basedir restriction in effect“ im LWS Panel

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 auf Ihrem Hosting erlaubten Bereichs zuzugreifen.

Er kann insbesondere nach der Migration einer Website auftreten, aufgrund eines in der Konfiguration gespeicherten alten Pfads, einer falsch konfigurierten Erweiterung oder eines benutzerdefinierten Skripts.

Vor Beginn

Bewahren Sie vor der Änderung eine Kopie der Datei auf. Außerdem benötigen Sie die vollständige Fehlermeldung, um den verweigerten Pfad und die PHP-Datei zu identifizieren, die das Problem verursacht.

Die Fehlermeldung verstehen

Die Meldung kann zum Beispiel 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 24

Sie enthält mehrere nützliche Informationen:

  • /home/ancien-hebergeur/public_html/config.php ist die Datei, auf die das Skript [ADDRESS] ;
  • /var/www/exemple.com/htdocs/ entspricht dem Bereich, in dem die Dateien Ihrer Website verwendet werden dürfen ;
  • /var/www/exemple.com/htdocs/index.php ist das Skript [PERSON_NAME] versucht, die Datei zu öffnen ;
  • line 24 zeigt 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.

Den Fehler in den PHP-Protokollen finden

Wenn Ihre Website nur eine weiße Seite oder einen Fehler 500 anzeigt, prüfen Sie die Protokolle des Hostings:

  1. Öffnen Sie das Tool Apache-/PHP-Logs.
  2. Wiederholen Sie die Aktion, die das Problem auf Ihrer Website auslöst.
  3. Aktualisieren Sie die Protokolle und suchen Sie nach der Zeile mit open_basedir restriction in effect.
  4. Notieren Sie den verweigerten Pfad und die am Ende der Meldung angegebene PHP-Datei.

Die neuesten Zeilen befinden sich in der Regel am Ende des Protokolls.

Den von der Website verwendeten Pfad korrigieren

1. Den tatsächlichen Speicherort der Datei prüfen

Im LWS Panel werden die öffentlichen Dateien einer Website in der Regel in einem Verzeichnis dieses Typs abgelegt:

/var/www/votre-domaine.fr/htdocs/

Ersetzen Sie votre-domaine.fr durch den betreffenden Domainnamen.

Prüfen Sie anschließend über den Dateimanager oder per FTP, ob sich die gesuchte Datei [PERSON_NAME] einem ihrer Unterordner befindet.

2. Den alten Pfad wiederfinden

Der falsche Pfad kann gespeichert sein:

  • in einer Konfigurationsdatei ;
  • in einem benutzerdefinierten PHP-Skript ;
  • in den Einstellungen einer Erweiterung oder eines Themes ;
  • in der Konfiguration eines Cache-, Import-, Sicherungs- oder temporären-Dateien-Ordners ;
  • in nach einer Migration erhaltenen Daten.

Suchen Sie vorrangig nach dem charakteristischen Teil des alten Pfads, zum Beispiel:

/home/ancien-hebergeur/

Ändern Sie nicht wahllos die internen Dateien von WordPress, PrestaShop oder einer anderen Anwendung. Prüfen Sie zunächst die Konfiguration der Erweiterung oder des Moduls, die in der Fehlermeldung angegeben ist.

3. Den falschen Pfad ersetzen

Ersetzen Sie den alten Pfad durch den tatsächlichen Pfad der Datei auf Ihrem LWS-Hosting.

Zum Beispiel:

Ancien chemin :
/home/ancien-hebergeur/public_html/cache/

Nouveau chemin :
/var/www/votre-domaine.fr/htdocs/cache/

In einem benutzerdefinierten PHP-Skript ist es oft besser, den Pfad ausgehend vom Verzeichnis des Skripts zu bilden, 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 dem LWS Panel nicht über eine Datei .user.ini 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.

4. Den Cache der Anwendung leeren

Nachdem Sie den Pfad korrigiert haben, leeren Sie den Cache über die Oberfläche Ihres CMS oder Ihrer Anwendung.

Ein alter Pfad kann in einer Cache-Datei gespeichert bleiben, selbst nachdem die Konfiguration geändert wurde.

Prüfen, ob alles funktioniert

Wiederholen Sie genau die Aktion, die den Fehler verursacht hat: Öffnen Sie die betreffende Seite, senden Sie das Formular ab oder starten Sie den unterbrochenen Vorgang neu.

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 in den PHP-Protokollen kein neuer Fehler open_basedir erscheint.

Häufige Probleme

Ich sehe nur einen Fehler 500 oder eine weiße Seite

Die vollständige Meldung ist wahrscheinlich in den PHP-Protokollen gespeichert. Öffnen Sie im LWS Panel das Tool Apache-/PHP-Logs und wiederholen Sie dann 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 [ADDRESS] Panel.

Ich finde nicht, wo der Pfad gespeichert ist

Sehen Sie sich den Namen der PHP-Datei an, der am Ende der Fehlermeldung angezeigt wird. Er hilft oft dabei, die betroffene Anwendung, das Theme, die Erweiterung oder das Skript zu identifizieren.

Bei einer Erweiterung prüfen Sie zunächst ihre Einstellungen für Cache, Import, Sicherung oder temporäre Dateien.

Die Datei befindet sich im Ordner htdocs, [PERSON_NAME] der Fehler bleibt bestehen

Prüfen Sie, ob der vom Skript verwendete Pfad genau dem tatsächlichen Speicherort der Datei entspricht.

Eine symbolische Verknüpfung kann ebenfalls scheinbar auf eine Datei der Website verweisen, während PHP zu einem Speicherort außerhalb des erlaubten Bereichs geleitet wird. 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 wiederholen Sie dann das Problem. Prüfen Sie außerdem, ob der Pfad an mehreren Stellen gespeichert ist.

Diesen Artikel bewerten :

Dieser Artikel war hilfreich für Sie ?

Article utileJa

Article non utileNicht

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Ähnliche Artikel

0mn von Lesen

Cloudflare Error 524: Ein Timeout aufgetreten

3mn von Lesen

Wie Sie einen 500-Fehler auf Ihrer Seite mit LWS Panel beheben können

9mn von Lesen

Wie kann ich einen HTTP-Fehlercode korrigieren?

0mn von Lesen

Fehler 404, was ist das, wie kann man ihn beheben


Questions sur cet article

Stellen Sie eine Frage an das LWS-Team und seine Gemeinschaft

RGPD : Responsable LWS-Ligne Web Services. Finalité : modération et publication publique de votre question, notification éventuelle d'une réponse. Base légale : consentement (art. 6.1.a RGPD). Conservation des emails : 90 jours après notification, 12 mois maximum sans réponse. Vous pouvez exercer vos droits via notre nos CGV - section RGPD.