WP chyby a ich riešenie – Biela obrazovka smrti

Každý snáď niekedy na vlastnej koži okúsil fenomén, známy ako modrá obrazovka smrti, alebo Blue Screen Of Death (aj vy, Apple fanatici, kým ste si našetrili na Mac 😉 ).

Tí čo robia so systémom WordPress možno poznajú podobný úkaz v podobe bielej obrazovky smrti alebo White Screen Of Death (WSOD). Tento problém nastáva podobne ako v prípade jeho modrého menovca spravidla pri nejakej akcii používateľa systému  a naznačuje problém so spustením funkcie alebo iného dynamického kódu v rámci programovacieho jazyka PHP, ktorý tvorí kostru systému WordPress.


V nasledujúcom článku si povieme, ako nájsť a odstrániť najčastejšie príčiny tejto chyby a prinavrátiť webstránke funkčnosť.

Vo všeobecnosti existujú dve základné podoby WSOD:

Čiastočný WSOD, kedy je nedostupná stránka pre návštevníkov navonok ale administrátorské rozhranie je funkčné

Totálny WSOD, ked žiadna linka v rámci WordPress inšatalácie nefunguje

Príčiny môžu byť rôzne, väčšinou ide o problém s WordPress témou alebo modulom, ktorý sa prejaví pri nainštalovaní alebo aktivovaní týchto prvkov. Podľa toho, pri akej akcii nastala chyba, môžete skúsiť prislúchajúce riešenia:

1. Deaktivovanie témy

Keď problém nastane pri manipulácii s novou alebo starou témou, skúsite deaktivovať aktívnu tému a zapnúť štandartnú predvolenú WordPress tému, o ktorej viete že bežne funguje. V prípade že funguje admin bez problémov je tento úkon jednoduchý. V opačnom prípade si musíte pomôcť cez FTP:

– Dohľadáte adresár príslušnej témy v adresári  wp-content/themes/
– Premenujete celý adresár témy, napr. z mojatema na mojatema-debug.


– Skúsite sa prihlásiť do administrátorského rozhrania.

V prípade že všetko funguje môžeme skúsiť nájsť chybu v kóde témy (viď bod č. 3), nie je však isté že chyba je práve tu. Môže totiž byť i vo WordPress module, ktorý nie je s témou kompatibilný.

2. Resetnutie modulov

WSOD môže byť spôsobený i chybou v jednom alebo viacerých WordPress moduloch. Keď máte dostupné administrátorské rozhranie, najlepšie je skúsiť všetky moduly vypnúť a keď sa tým problém odstráni, následne postupne zapínať a pri každej aktivácii kontrolovať či sa znovu neobjaví.

Pri totálnom WSOD-e nám neostáva nič iné len sa znovu prihlásiť do FTP a postupovať nasledovne:

– Dohľadáte adresár modulov na adrese wp-content/plugins.
– Premenujete celý adresár plugins – napríklad na plugins-debug a uložíme si ho offline.
– Vytvoríte nový adresár plugins na rovnakej úrovni.
– Pozriete sa, či je problém odstránený (samozrejme v tomto stave nebudú žiadne moduly funkčné).
– Skúsite postupne presúvať adresáre modulov do nového adresára plugins a aktivovať moduly cez administrátorské rozhranie, v ktorom sa budú postupne zobrazovať. Pritom kontrolujete, kedy sa problém opäť prejaví.


– Keď sa WSOD opäť ukáže, daný modul opäť zmažete a skúsite násť chybu v kóde, prípadne skúsite použiť iný modul ktorý nám poskytne rovnakú funkcionalitu.

3. Odstránenie chyby v kóde

Tu si môžeme popísať niekoľko konkrétnych príčin, ktoré môžu mať WSOD na svedomí:

– Duplicitné alebo kolidujúce PHP funkcie v rôznych moduloch
Najmä v moduloch s rovnakou alebo podobnou funkcionalitou (alebo medzi modulom a témou) môže nastať prípad, kedy sú viaceré funkcie pomenované rovnako alebo používajú rovnako nazvané globálne premenné, čo môže tiež spôsobiť WSOD. Treba si preto dobre skontrolovať rôzne kombinácie, popísané v bodoch 1. a 2., aby sa problém neprejavil opäť v budúcnosti.

– Nekompletné nahratie modulu alebo témy pomocou automatickej (cez administrátorské rozhranie) alebo manuálnej (cez FTP) inštalácie.
V takom prípade pomôže jednoducho danú tému alebo modul po deaktivácii zmazať a opätovne stiahnuť, v prípade že sa nahrá v poriadku bude fungovať.

– Medzera v súbore functions.php alebo prázdny riadok v súbore wp-config.php
Súbor functions.php nájdete v adresári témy. Ak ste v ňom robili zmeny, malo by pomôcť zmeny odstrániť alebo jednoducho nahradiť celý súbor pôvodným súborom témy. Častým problémom sú najmä zblúdilé medzery na nesprávnom mieste, viď obrázok:

Podobne môže spôsobovať problém i prázdny riadok (najmä na začiatku a na konci) v súbore wp-config.php, ktorý nájdete v koreňovom adresári inštalácie WordPress.

– Nastavenie práv na adresároch a súboroch
Všetky adresáre by mali mať serverové (takzvané chmod) oprávnenia na úrovni 755 a všetky súbory na úrovni 644. I keď zriedka, tento problém môže nastať pri zmene nastavení štandardného pridelovania práv zo strany poskytovateľa. Pozor, neskúšajte si nastaviť na súbory väčšie oprávnenia, toto nastavenie môže ovplyvniť bezpečnosť celej webstránky.

Niekoľko poznámok a tipov ako predísť WSOD:

– Pred inštaláciou nových modulov alebo témy sa uistite, či sú kompatibilné s novou (pripadne vašou) verziou WordPress.

– Ak nie ste príliš technicky zdatným PHP programátorom, nesnažte sa stiahnuť si hneď prvú betaverziu systému WordPress. Keď však aktualizujete vašu inštaláciu WordPress na oficiálnu novú verziu a nastane WSOD, chybu hľadajte v nainštalovaných moduloch a témach, ktoré nemusia novú verziu podporovať. Ak sú tieto moduly alebo téma nutné, je potrebné počkať na ich novú verziu a až potom aktualizovať WordPress, prípadne dočasne identifikovať a opraviť chybu svojpomocne.

– Ak neviete prísť na chybu, prečítajte si chybové hlásenie v záznamoch (logoch) servera, ktoré často obsahujú priamu zmienku o funkcii resp. súbore, ktorý spôsobuje problém. Tieto záznamy by vám mal vedieť poskytnúť váš .. poskytovateľ :)

Po prečítaní týchto riadkov si môže neznalý pozorovateľ povedať: “Ejha, ten WordPress je ale nestabilný systém..”

Opak je však pravdou: tieto chyby nastávajú na rozdiel od známeho BSODu veľmi zriedka a pričinením spravidla prídavných modulov alebo rozširujúcich tém, ktoré sú produktom dobrovoľníckej komunity. Spomedzi tisícov modulov a tém ktoré vznikajú denne je pochopiteľné, že nie je možné dosiahnuť vždy maximálnu kompatibilitu. I tak je však dobré systémom hodnotenia kompatibility tém a modulov k takémuto stavu stále smerovať.

 

Sme na konci ďalšieho dielu o riešení chýb v systéme WordPress. Rovnako ako v predchádzajúcom článku uvítame vaše postrehy k tejto téme v komentároch.

Vyriešili ste váš problém s WSOD rovnako alebo inak?
Stretli ste sa s inou, napríklad zelenou obrazovkou smrti? :)
Dajte nám vedieť!

 

The following two tabs change content below.

Lukáš Čerman

Multifunkčný babrák at Webikon
je front-endový vývojár, copywriter a fotograf, ktorý sa snaží pomáhať fanúšikom systému WordPress i za cenu hrabania sa v back-ende nášho obľúbeného CMSka. Vo voľnom čase je veľkým fanúšikom progamingu.

8 komentárov


  1. ahojte, mám tému Avada a po inštalácii pluginu Fusion core a Revolution slider mi naskočí biela obrazovka…pri preinštalovaní WP na anglickú verziu dokážem nainštalovať Fusion core, avšak Revolution slider stále nefunguje správne…viete mi pomôcť nejako prosím? Ďakujem

    Odpovedať

  2. Skvele rady, ja som mal problem s novym plugginom. Vymazal som ho podla navodu cez ftp a opat mi ide administracia, supeer. Dakujem!

    Odpovedať

  3. vyborne, tiez som mala problem s totalnym WSOD pri presune z jedneho servera na druhy a zmene adresy domeny. Na localhoste to tiez neslapalo (ale slo to ked som najprv naistalovala zakladny wordpress a potom nahrala subory a importovala databazu). Ten isty pokus vsak online nesiel. Podla tohto clanku som nasla chyby. Bol nou modul event-manager, diik za clanok

    Odpovedať


  4. velmi pekne dakujem za tento clanok… naozaj sa vam vydaril… tento problem som uz neraz riesil a vas clanok priniesol nejake inspiracie do buduceho riesenia :)

    Odpovedať

Pridaj komentár