WordPress a chyba open_basedir restriction in effect

Včera jsem pomáhal řešit jednu chybu u WordPress. Do té doby fungující WordPress začal na stránkách (page) házet chybu vypadající zhruba takto:

Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/) is not within the allowed path(s): ...

Samotný majitel si toho všiml včera. Klidně tam ta chyba mohla být i několik měsíců. Jednotlivé příspěvky totiž fungovali dobře, zlobily jen stránky. Takže neví zdali za to mohl poslední automatická bezpečnostní aktualizace 3.9.2 WordPress, nějaký plugin anebo některý z redaktorů našel zázračnou cestu jak pokazit nastavení.

V 99 procentech případů je tato chyba snadno odstranitelná.

  1. Stačí se přihlásit do administrace.
  2. Kliknout na Nastavení.
  3. Vybrat média.
  4. Tam uvidíte podivně vypadající adresu v políčku, které tam normálně není vůbec vidět. Do něj vložte wp-content/uploads/ popřípadě wp-content/uploads
  5. Jakmile formulář uložíte, tak políčko s adresou zmizne a vše by mělo fungovat.

Mělo by se jednat o nějakou chybu z dávných dob WordPress (verze 2.x), která se záhadným způsobem aktivovala.

Funkce open_basedir definuje cestu z které PHP může používat (spíše má přístup) k souborům. Pokud je soubor mimo tuto cestu, tak se k němu skript nedostane a PHP vyhlásí právě takovouto chybu. V našem případě z nějakého důvodu je přepsána cesta k souborům a WordPress se snaží dostat k souborům, kam nemá přístup. Ve většině případů je ale kompletně špatně nastavená cesta k dočasným souborům.

Lepší je moc zbytečně neřešit detaily a použít výše uvedenou metodu.

Teď jsem si vzpomněl, že v jednom případě tuto chybu způsoboval vlastní obrázek v hlavičce stránky u šablony twenty ten. Takže pozor i na šablony 🙂

Autor Ginoza

Pracuji na zákaznické podpoře jednoho známého webhostingu.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *