Opravit chybu PHP „open_basedir restriction in effect“ v LWS Panelu

Procédure

  

Související služba : sdílený webhosting LWS Panel
Související panel : LWS Panel
Úroveň : střední

Chyba open_basedir restriction in effect se objeví, když se skript PHP pokouší přistoupit k souboru nebo složce mimo povolený prostor na vašem hostingu.

Může se objevit zejména po migraci webu, kvůli staré cestě uložené v konfiguraci, špatně nastavenému rozšíření nebo vlastnímu skriptu.

Než začnete

Před úpravou si ponechte kopii souboru. Také musíte mít k dispozici kompletní chybovou hlášku, abyste mohli určit zamítnutou cestu a soubor PHP, který je příčinou problému.

Porozumění chybové hlášce

Zpráva může vypadat například takto:

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

Obsahuje několik užitečných informací:

  • /home/ancien-hebergeur/public_html/config.php je soubor, ke kterému se skript [ADDRESS] ;
  • /var/www/exemple.com/htdocs/ odpovídá prostoru, ve kterém lze používat soubory vašeho webu ;
  • /var/www/exemple.com/htdocs/index.php je skript [PERSON_NAME] otevřít soubor ;
  • line 24 označuje příslušný řádek v tomto skriptu.

V tomto příkladu web stále používá cestu pocházející ze starého hostingu. PHP tedy přístup k souboru blokuje.

Najít chybu v protokolech PHP

Pokud se na vašem webu zobrazuje pouze bílá stránka nebo chyba 500, zkontrolujte protokoly hostingu:

  1. Otevřete nástroj Logy Apache / PHP.
  2. Zopakujte akci, která na vašem webu způsobuje problém.
  3. Obnovte protokoly a vyhledejte řádek obsahující open_basedir restriction in effect.
  4. Poznamenejte si zamítnutou cestu a soubor PHP uvedený na konci zprávy.

Nejnovější řádky se obvykle nacházejí na konci záznamu.

Oprava cesty používané webem

1. Ověřte skutečné umístění souboru

V LWS Panelu jsou veřejné soubory webu obvykle umístěny v adresáři tohoto typu:

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

Nahraďte votre-domaine.fr názvem příslušné domény.

Poté zkontrolujte ve správci souborů nebo přes FTP, zda se hledaný soubor [PERSON_NAME] některé z jeho podsložek.

2. Najděte starou cestu

Nesprávná cesta může být uložená:

  • v konfiguračním souboru ;
  • ve vlastním skriptu PHP ;
  • v nastavení rozšíření nebo šablony ;
  • v konfiguraci složky pro cache, import, zálohu nebo dočasné soubory ;
  • v datech zachovaných po migraci.

Přednostně vyhledejte charakteristickou část staré cesty, například:

/home/ancien-hebergeur/

Neměňte náhodně interní soubory WordPressu, PrestaShopu nebo jiné aplikace. Začněte kontrolou nastavení rozšíření nebo modulu uvedeného v chybové zprávě.

3. Nahraďte nesprávnou cestu

Nahraďte starou cestu skutečnou cestou k souboru na vašem hostingu LWS.

Například:

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

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

U vlastního skriptu PHP je často lepší sestavovat cestu od složky skriptu, než ukládat úplnou cestu k serveru.

Například:

require __DIR__ . '/config.php';

Tento zápis umožňuje skriptu vyhledat config.php ve vlastní složce.

Direktivu open_basedir nelze na LWS Panelu změnit ani deaktivovat ze souboru .user.ini.

Tuto ochranu není dovoleno obcházet. Musíte opravit cestu používanou webem, skriptem nebo rozšířením.

4. Vymažte mezipaměť aplikace

Po opravě cesty vymažte mezipaměť v rozhraní svého CMS nebo aplikace.

Stará cesta může zůstat uložená v cache souboru, a to i po změně konfigurace.

Ověření, že vše funguje

Přesně zopakujte akci, která chybu způsobovala: otevřete příslušnou stránku, odešlete formulář nebo znovu spusťte přerušenou operaci.

Poté znovu zkontrolujte protokoly PHP. Neměl by se objevit žádný nový řádek open_basedir restriction in effect.

Oprava je dokončena, když příslušná stránka nebo funkce znovu funguje a v protokolech PHP se neobjevuje žádná nová chyba open_basedir.

Časté problémy

Vidím pouze chybu 500 nebo bílou stránku

Úplná zpráva je pravděpodobně zaznamenána v protokolech PHP. Otevřete nástroj Logy Apache / PHP v LWS Panelu a před obnovením protokolu chybu zopakujte.

Uvedená cesta odpovídá mému starému hostingu

Absolutní cesta nebyla při migraci aktualizována. Vyhledejte tuto cestu v konfiguračních souborech, nastaveních rozšíření a vlastních skriptech.

Nahraďte ji aktuální cestou vašeho webu [ADDRESS] Panel.

Nemohu najít, kde je cesta uložena

Podívejte se na název souboru PHP zobrazený na konci chybové zprávy. Často pomůže určit příslušnou aplikaci, šablonu, rozšíření nebo skript.

U rozšíření nejprve zkontrolujte jeho nastavení cache, importu, zálohování nebo dočasných souborů.

Soubor se nachází ve složce htdocs, ale chyba přetrvává

Zkontrolujte, že cesta používaná skriptem přesně odpovídá skutečnému umístění souboru.

Symbolický odkaz může také vypadat, že směřuje na soubor webu, a přitom přesměrovávat PHP na umístění mimo povolený prostor. V takovém případě nahraďte odkaz přímým přístupem k souboru umístěnému ve složce webu.

Chyba se po úpravě vrací

Vymažte mezipaměť své aplikace a poté problém zopakujte. Také zkontrolujte, že cesta není uložená na více místech.

Ohodnotit tento článek :

Tento článek byl pro vás užitečný ?

Article utileAno

Article non utileNe

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)

Podobné články

0mn čtení

Chyba Cloudflare 524 : Došlo k časovému výpadku

3mn čtení

Jak opravit chybu 500 na webu pomocí panelu LWS

9mn čtení

Jak opravím chybové kódy HTTP?

0mn čtení

Chyba 404, co to je a jak ji opravit


Questions sur cet article

Položte týmu LWS a jeho komunitě otázku

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.