Každý snad někdy na vlastní kůži okusil fenomén, známý jako modrá obrazovka smrti, nebo Blue Screen Of Death (i vy, Apple fanatici, zatímco jste si našetřili na Mac 😉 ).
Ti co dělají se systémem WordPress možná znají podobný úkaz v podobě bílé obrazovky smrti nebo White Screen Of Death ( WSOD ). Tento problém nastává podobně jako v případě jeho modrého jmenovce zpravidla při nějaké akci uživatele systému a naznačuje problém se spuštěním funkce nebo jiného dynamického kódu v rámci programovacího jazyka PHP, který tvoří kostru systému WordPress .
V následujícím článku si řekneme, jak najít a odstranit nejčastější příčiny této chyby a navrátit webstránce funkčnost.
Obecně existují dvě základní podoby WSOD :
– Částečný WSOD , kdy je nedostupná stránka pro návštěvníky navenek ale administrátorské rozhraní je funkční
– Totální WSOD , kdy žádná linka v rámci WordPress instalace nefunguje
Příčiny mohou být různé, většinou se jedná o problém s WordPress tématem nebo modulem, který se projeví při nainstalování nebo aktivování těchto prvků. Podle toho, při jaké akci nastala chyba, můžete zkusit příslušející řešení:
1. Deaktivování tématu
Když problém nastane při manipulaci s novým nebo starým tématem, zkusíte deaktivovat aktivní téma a zapnout standardní výchozí WordPress téma, o kterém víte, že běžně funguje. V případě že funguje admin bez problémů je tento úkon snadný. V opačném případě si musíte pomoci přes FTP:
– Dohledáte adresář příslušného tématu v adresáři wp-content/themes/
– Přejmenujete celý adresář tématu. z mojatema na mojatema-debug.
– Zkusíte se přihlásit do administrátorského rozhraní.
V případě, že vše funguje, můžeme zkusit najít chybu v kódu tématu (viz bod č. 3), není však jisté, že chyba je právě zde. Může totiž být i ve WordPress modulu, který není s tématem kompatibilní.
2. Resetnutí modulů
WSOD může být způsoben i chybou v jednom nebo více WordPress modulech. Když máte dostupné administrátorské rozhraní, nejlepší je zkusit všechny moduly vypnout a když se tím problém odstraní, následně postupně zapínat a při každé aktivaci kontrolovat či se znovu neobjeví.
Při totálním WSOD nám nezbývá nic jiného než se znovu přihlásit do FTP a postupovat následovně:
– Dohledáte adresář modulů na adrese wp-content/plugins.
– Přejmenujete celý adresář plugins – například na plugins-debug a uložíme si jej offline.
– Vytvoříte nový adresář plugins na stejné úrovni.
– Podíváte se, zda je problém odstraněn (samozřejmě v tomto stavu nebudou žádné moduly funkční).
– Zkusíte postupně přesouvat adresáře modulů do nového adresáře plugins a aktivovat moduly přes administrátorské rozhraní, ve kterém se budou postupně zobrazovat. Přitom kontrolujete, kdy se problém opět projeví.
– Když se WSOD opět ukáže, daný modul opět smažete a zkusíte náct chybu v kódu, případně zkusíte použít jiný modul který nám poskytne stejnou funkcionalitu.
3. Odstranění chyby v kódu
Zde si můžeme popsat několik konkrétních příčin, které mohou mít WSOD na svědomí:
– Duplicitní nebo kolidující PHP funkce v různých modulech
Zejména v modulech se stejnou nebo podobnou funkcionalitou (nebo mezi modulem a tématem) může nastat případ, kdy je více funkcí pojmenováno stejně nebo používají stejně nazvané globální proměnné, což může také způsobit WSOD. Je třeba si proto dobře zkontrolovat různé kombinace, popsané v bodech 1. a 2. , aby se problém neprojevil opět v budoucnosti.
– Nekompletní nahrání modulu nebo tématu pomocí automatické (přes administrátorské rozhraní) nebo manuální (přes FTP) instalace.
V takovém případě pomůže jednoduše dané téma nebo modul po deaktivaci smazat a opětovně stáhnout, v případě že se nahraje v pořádku bude fungovat.
– Mezera v souboru functions.php nebo prázdný řádek v souboru wp-config.php
Soubor functions.php naleznete v adresáři tématu. Pokud jste v něm prováděli změny, mělo by pomoci změny odstranit nebo jednoduše nahradit celý soubor původním souborem tématu. Častým problémem jsou zejména zbloudilé mezery na nesprávném místě, viz obrázek:
Podobně může způsobovat problém i prázdný řádek (zejména na začátku a na konci) v souboru wp-config.php , který naleznete v kořenovém adresáři instalace WordPress .
– Nastavení práv na adresářích a souborech
Všechny adresáře by měly mít serverová (takzvaná chmod) oprávnění na úrovni 755 a všechny soubory na úrovni 644. I když zřídka, tento problém může nastat při změně nastavení standardního přidělování práv ze strany poskytovatele. Pozor, nezkoušejte si nastavit na soubory větší oprávnění, toto nastavení může ovlivnit bezpečnost celé webové stránky.
Několik poznámek a tipů jak předejít WSOD :
– Před instalací nových modulů nebo tématu se ujistěte, zda jsou kompatibilní s novou (případně vaší) verzí WordPress .
– Pokud nejste příliš technicky zdatným PHP programátorem, nesnažte se stáhnout si hned první betaverzi systému WordPress . Když však aktualizujete vaši instalaci WordPress na oficiální novou verzi a nastane WSOD, chybu hledejte v nainstalovaných modulech a tématech, která nemusí novou verzi podporovat. Pokud jsou tyto moduly nebo téma nutné, je třeba počkat na jejich novou verzi a teprve potom aktualizovat WordPress , případně dočasně identifikovat a opravit chybu svépomocí.
– Pokud neumíte přijít na chybu, přečtěte si chybové hlášení v záznamech (logech) serveru, které často obsahují přímou zmínku o funkci resp. souboru, který způsobuje problém. Tyto záznamy by vám měl umět poskytnout váš .. poskytovatel 🙂
—
Po přečtení těchto řádků si může neznalý pozorovatel říci: „Ejha, ten WordPress je ale nestabilní systém..“
Opak je však pravdou: tyto chyby nastávají na rozdíl od známého BSODu velmi zřídka a přičiněním zpravidla přídavných modulů nebo rozšiřujících témat, která jsou produktem dobrovolnické komunity. Mezi tisíci moduly a tématy, které vznikají denně, je pochopitelné, že není možné dosáhnout vždy maximální kompatibility. Přesto je však dobré systémem hodnocení kompatibility témat a modulů k takovému stavu stále směřovat.
Jsme na konci dalšího dílu o řešení chyb v systému WordPress . Stejně jako v předchozím článku uvítáme vaše postřehy k tomuto tématu v komentářích.
Vyřešili jste váš problém s WSOD stejně nebo jinak?
Setkali jste se s jinou, například zelenou obrazovkou smrti? 🙂
Dejte nám vědět!
Was this article helpful for you? Support me by sharing, please. 👍