Zmenili ste v hostingu verziu PHP a namiesto webu sa zobrazuje kritická chyba, biela stránka alebo chyba 500? Nemusí to znamenať stratu obsahu. Často sa prejaví nekompatibilita pluginu, témy alebo vlastného kódu. Najskôr potrebujete zistiť príčinu, nie naslepo preinštalovať WordPress.

Ak WordPress po zmene PHP nefunguje, oddeľte dve úlohy: bezpečne obnoviť prevádzku a následne opraviť problém tak, aby web fungoval na podporovanej verzii PHP. Tento postup vám pomôže rozhodnúť, čo viete overiť sami a kedy už odovzdať zásah správcovi.

1. Najprv zastavte ďalšie zmeny a zabezpečte zálohu

Poznačte si čas výpadku, pôvodnú a novú verziu PHP a všetky súčasné zmeny. Aktualizovali ste aj pluginy, tému alebo WordPress? Ak sa menilo viac vecí naraz, samotná časová zhoda ešte nedokazuje, že príčinou je PHP.

  • Overte dostupnú zálohu súborov aj databázy spred zásahu a možnosť jej obnovy. Samotný export článkov nestačí.
  • Ak je to možné, uložte aj aktuálny stav a chybové logy. Pomôžu pri diagnostike a ochrane nových dát.
  • Neinštalujte náhodné „opravné“ pluginy a nemažte súbory WordPressu. Neuváženým zásahom môžete pridať ďalšiu chybu.
  • Pri e-shope neobnovujte starú databázu bez plánu: prepísali by ste objednávky a zmeny vzniknuté po vytvorení zálohy.

Zmena verzie PHP sama osebe spravidla nevymaže články ani objednávky. Prázdna obrazovka preto nie je dôvod na novú inštaláciu alebo okamžité prepísanie databázy.

2. Zistite rozsah výpadku a overte verziu PHP

Skontrolujte verejnú stránku, konkrétnu podstránku aj /wp-admin/. Ak titulná stránka funguje, ale administrácia nie, môže sa vám zobrazovať uložená kópia stránky z cache. Jeden úspešný náhľad preto nestačí.

Skutočnú verziu PHP overte v nastavení príslušnej domény na hostingu. Ak administrácia funguje, pomôže aj Nástroje → Zdravie webu → Informácie → Server. Pri práci cez SSH môže príkaz php -v ukazovať inú verziu než tú, ktorá obsluhuje webové požiadavky.

WordPress môže po niektorých fatálnych chybách odoslať správcovi e-mail s odkazom do režimu obnovy. Skontrolujte schránku aj spam. Odkaz nezverejňujte a neposielajte ho do diskusie. Ak e-mail nepríde, neznamená to, že chyba neexistuje — problém môže brániť aj odoslaniu správy.

3. Nájdite chybu v logu, nie iba jej hlásenie na stránke

Text „Na vašej webovej stránke sa vyskytla kritická chyba“ nehovorí, ktorá súčasť zlyhala. Začnite PHP error logom v administrácii hostingu. Vyvolajte chybu jedným načítaním problematickej stránky a porovnajte čas s čerstvým záznamom. Ak log nemáte dostupný, požiadajte podporu hostingu o záznam pre konkrétnu doménu a čas.

Čo v zázname hľadať

  • Fatal error alebo Uncaught TypeError: chyba, ktorá môže ukončiť spracovanie požiadavky. Pozrite aj cestu k súboru a kontext volaní.
  • Cesta do wp-content/plugins/: stopa vedúca k pluginu. Nemusí však dokazovať, že je jedinou príčinou — problém môže vzniknúť v interakcii s inou súčasťou.
  • Cesta do wp-content/themes/: skontrolujte tému, child tému a doplnené úpravy.
  • Call to undefined function: môže ísť o odstránenú funkciu, chýbajúce PHP rozšírenie alebo kód, ktorý sa nenačítal.
  • Deprecated: upozornenie na zastaraný kód. Samo osebe zvyčajne nie je dôvodom úplného výpadku.

Dočasné ladenie na testovacej kópii

Ak serverový log nestačí, na stagingu môžete zapnúť ladenie WordPressu. Pred úpravou zálohujte wp-config.php. Existujúce definície upravte, nevkladajte ich druhýkrát. Nastavenie patrí pred komentár „That's all, stop editing! Happy publishing.“ alebo jeho variant a pred načítanie WordPressu.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Pri tomto nastavení WordPress zapisuje do wp-content/debug.log, ak má právo súbor vytvoriť. Skrytie chýb v HTML nechráni samotný log pred stiahnutím. Obmedzte k nemu webový prístup alebo so správcom nastavte zapisovateľnú cestu mimo verejného adresára. Log môže obsahovať citlivé údaje a interné cesty.

Ladenie je určené predovšetkým na staging. Na produkcii uprednostnite hostingový log a prípadný nevyhnutný diagnostický zásah nechajte správcovi. Po diagnostike vráťte nastavenia späť, vypnite ladenie a bezpečne odstráňte alebo archivujte vzniknutý log. Prázdny debug log nevylučuje chybu — PHP môže zlyhať ešte pred načítaním WordPressu.

Potrebujete obnoviť prevádzku?

Web nefunguje ani v administrácii?

Pomôžem nájsť príčinu a navrhnúť bezpečný postup opravy. Do správy stačí uviesť adresu webu, príznaky a poslednú zmenu — heslá neposielajte v úvodnom e-maile.

4. Overte pluginy, tému a konfiguráciu servera

Novšia verzia PHP môže sprísniť prácu s dátovými typmi alebo odstrániť staré funkcie. Plugin, ktorý fungoval na pôvodnom prostredí, preto nemusí fungovať po zmene. Skontrolujte tiež PHP rozšírenia a nastavenia: pri prepnutí verzie nemusia byť rovnaké.

Na testovacej kópii začnite súčasťou, na ktorú ukazuje log. Overte podporované verzie PHP v dokumentácii dodávateľa a dostupnú aktualizáciu. Zaznamenajte si aktívne pluginy a meňte vždy len jednu vec. Po zmene zopakujte presne tú požiadavku, ktorá zlyhávala.

Ak sa neviete prihlásiť, správca môže problémový plugin dočasne deaktivovať cez správcu súborov alebo SFTP premenovaním jeho konkrétneho priečinka. Priečinok nemažte. Takýto zásah vypne aj funkcie pluginu — napríklad formulár, platby alebo ochranu webu. Preto ho najskôr skúšajte na stagingu a po návrate názvu overte stav aktivácie.

Ak log ukazuje na tému, otestujte na stagingu kompatibilnú predvolenú tému a skontrolujte aj child tému. Náhodná výmena témy na živom webe môže zmeniť vzhľad aj dostupné funkcie. Pri vlastnom kóde treba chybu opraviť, nie upravovať jadro WordPressu alebo len skryť hlásenie.

Pokročilí správcovia môžu pri diagnostike využiť aj WP-CLI. Príkazy však musia bežať v správnej inštalácii a s vhodnou verziou PHP; úspešný príkaz v termináli ešte nepotvrdzuje funkčnosť webu.

5. Návrat na pôvodné PHP je dočasné riešenie

Ak web prestal fungovať bezprostredne po prepnutí a hosting umožňuje návrat, pôvodná verzia PHP môže dočasne obnoviť prevádzku. Pred zmenou overte, či sa nastavenie týka iba danej domény alebo aj ďalších webov. Ak zároveň prebehli aktualizácie či migrácia databázy, návrat samotného PHP nemusí stačiť.

Ak web po návrate funguje, je to silná stopa ku kompatibilite alebo rozdielu konfigurácie, nie hotová oprava. Dlhodobé používanie nepodporovaného PHP nie je bezpečná stratégia. Pripravte kompatibilné aktualizácie, náhradu opusteného pluginu alebo úpravu vlastného kódu a otestujte podporovanú cieľovú verziu.

Konkrétnu verziu vyberte podľa podpory PHP, hostingu a všetkých kľúčových súčastí webu. Nestačí, že ju podporuje iba jadro WordPressu. Ak pôvodná verzia nie je dostupná, požiadajte hosting o pomoc s diagnostikou; nesnažte sa obísť bezpečnostné obmedzenia servera.

6. Po oprave otestujte viac než titulnú stránku

Oprava je hotová až vtedy, keď fungujú dôležité používateľské scenáre a pri ich vykonaní nepribúdajú nové fatálne chyby. Staging chráňte prihlásením, zabráňte jeho indexácii a vypnite reálne platby aj odosielanie správ zákazníkom.

  • Prihlásenie, otvorenie administrácie a uloženie upraveného článku.
  • Kontaktný formulár vrátane doručenia správy, nie iba hlásenia „odoslané“.
  • Pri e-shope košík, pokladňa, doprava a testovacia platba v sandboxe platobnej brány.
  • Nahrávanie obrázkov, vyhľadávanie a funkcie dôležité pre konkrétny web.
  • Naplánované úlohy, integrácie a kontrola čerstvých serverových logov.

Po nasadení overte aj živý web. Cache vyčistite podľa nastavenia hostingu a použitých nástrojov, aby ste nekontrolovali iba starú uloženú stránku. Pri objednávkach a platbách postupujte kontrolovane, aby test nevytvoril nechcené reálne transakcie.

Do budúcnosti pomáha jednoduchý proces: aktuálna záloha, testovacia kópia, kontrola kompatibility, plán návratu a test po nasadení. Ak sa tým nechcete pravidelne zaoberať, riešením je pravidelná správa WordPress webu.

Časté otázky

Pomôže zvýšenie PHP memory limitu?

Iba vtedy, ak log skutočne ukazuje vyčerpanie pamäte a vyšší limit dáva v danom prostredí zmysel. Chýbajúcu funkciu alebo nekompatibilný kód tým neopravíte. Ani pri pamäťovej chybe nezabudnite hľadať príčinu nadmernej spotreby.

Treba obnoviť celý web zo zálohy?

Nie automaticky. Ak sa zmenilo iba PHP, môže stačiť úprava prostredia alebo konkrétnej súčasti webu. Obnova celej databázy je zásah do obsahu a objednávok, preto ju robte až po vyhodnotení následkov.

Čo poslať správcovi, aby vedel začať?

Adresu webu, čas vzniku chyby, pôvodnú a novú verziu PHP, opis posledných zmien a informáciu o zálohách. Výpis logu zdieľajte súkromne po odstránení citlivých údajov. Prístupy odovzdajte dohodnutým bezpečným spôsobom, ideálne cez dočasný účet s potrebnými oprávneniami.

Zdroje a ďalšie čítanie