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

Procédure

  

Příslušná služba : sdílený webhosting LWS Panel
Příslušný panel : LWS Panel
Úroveň : střední

Chyba open_basedir restriction in effect se zobrazí, když se skript PHP pokusí přistoupit k souboru nebo složce, která se nachází mimo povolený prostor na vašem hostingu.

Může nastat 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 uchovejte kopii souboru. Také musíte mít k dispozici úplné chybové hlášení, abyste mohli určit zamítnutou cestu a soubor PHP, který je zdrojem problému.

Porozumění chybovému hlášení

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

Kód
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 snaží přistoupit;
  • /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, který se pokusil soubor otevřít;
  • 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.

Najděte 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 Logs Apache / PHP.
  2. Zopakujte akci, která problém na vašem webu vyvolává.
  3. Aktualizujte 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 protokolu.

Oprava cesty používané webem

1. Zkontrolujte skutečné umístění souboru

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

Kód
/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 skutečně nachází v tomto adresáři nebo v jednom z jeho podadresářů.

2. Najděte starou cestu

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

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

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

Kód
/home/ancien-hebergeur/

Náhodně neupravujte interní soubory WordPressu, PrestaShopu ani jiné aplikace. Začněte kontrolou konfigurace rozšíření nebo modulu uvedeného v chybovém hlášení.

3. Nahraďte nesprávnou cestu

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

Například:

Kód
Ancien chemin :
/home/ancien-hebergeur/public_html/cache/

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

Ve vlastním PHP skriptu je často vhodnější sestavit cestu podle složky skriptu, než ukládat úplnou cestu k serveru.

Například:

Kód
require __DIR__ . '/config.php';

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

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

Tuto ochranu není možné obejít. 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í vašeho CMS nebo aplikace.

Stará cesta může zůstat uložená v souboru mezipaměti i po změně konfigurace.

Ověřte, že vše funguje

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

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

Oprava je dokončena, když příslušná stránka nebo funkce opět 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 Logs Apache / PHP v LWS Panelu a poté chybu zopakujte, než protokol aktualizujete.

Zobrazená 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 v LWS Panelu.

Nedokážu najít, kde je cesta uložena

Podívejte se na název souboru PHP zobrazený na konci chybového hlášení. Často pomůže identifikovat příslušnou aplikaci, téma, rozšíření nebo skript.

U rozšíření nejprve zkontrolujte jeho nastavení pro cache, import, zálohy nebo dočasné soubory.

Soubor se nachází ve složce htdocs, ale chyba pokračuje

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

Symbolický odkaz může také zdánlivě ukazovat na soubor webu, ale ve skutečnosti směrovat 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ěť aplikace a poté problém zopakujte. Také zkontrolujte, zda není cesta uložena na více místech.

help.lws.net/a/765
Byl pro vás tento článek užitečný?

Ano

Ne

Přečteno 19 675×

Děkujeme! Neváhejte se ptát na naši dokumentaci, pokud chcete více informací, a pomozte nám ji zlepšit.

Podobné články

Máte otázku k tomuto článku?

Položte ji týmu LWS a komunitě. Odpověď bude zveřejněna po kontrole moderátorem.

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

GDPR: Správce: LWS-Ligne Web Services. Účel: moderace a veřejné zveřejnění vašeho dotazu, případné upozornění na odpověď. Právní základ: souhlas (čl. 6 odst. 1 písm. a GDPR). Uchovávání e-mailů: 90 dní po upozornění, nejvýše 12 měsíců bez odpovědi. Pro uplatnění svých práv viz oddíl GDPR našich obchodních podmínek.