Kapitola 14 · 14.6
Chyby po upgrade PHP a hľadanie záznamu chýb
Zvýšili ste verziu PHP a teraz je vaša webová stránka biela, zobrazuje chybové hlásenie alebo časť prestala fungovať. Je to takmer vždy spôsobené pluginom, témou alebo vlastným kódom, ktorý nie je vhodný pre novú verziu. Žiadna panika: pôvodnú verziu vrátite za minútu a potom si v pokoji zistíte, čo je zle.
Krok 1: vráťte pôvodnú verziu
Prejdite na Select PHP version, vyberte znova verziu, ktorú ste mali predtým, a kliknite na Apply (pozri Voľba verzie PHP (Select PHP version)). Vaša webová stránka bude potom hneď znova fungovať ako predtým. Ak ste pri novej verzii upravili rozšírenia alebo nastavenia, zostanú zachované pre ďalší pokus.
Krok 2: nájdite chybové hlásenie v zázname chýb
PHP zapisuje chyby do záznamu chýb vašej domény. Tam nájdete presne, ktorý súbor a ktorý riadok spôsobuje problém.
- V DirectAdmin kliknite pod Systémové informácie a súbory na Súhrne štatistiky a logy.
- Pri vašej doméne kliknite na Záznam chýb.
- Pozrite sa na posledné riadky, úplne dole. Hľadajte riadky s textom PHP Fatal error, PHP Parse error alebo PHP Warning (1).

Viac o záznamoch si prečítate v Súhrnné štatistiky a logy: záznam chýb a záznam prístupov.
Krok 3: pochopte hlásenie
V hlásení je uvedená cesta k súboru. Podľa nej väčšinou zistíte, ktorý plugin alebo ktorá téma je príčinou problému. Niekoľko príkladov:
| V hlásení vidíte | Význam |
|---|---|
| .../wp-content/plugins/názov-pluginu/... | Tento plugin nefunguje na novej verzii. Aktualizujte ho, alebo ak sa už neudržiava, nájdite náhradu. |
| .../wp-content/themes/názov-témy/... | Vaša téma je príliš stará. Aktualizujte ju, alebo požiadajte tvorcu o aktualizáciu. |
| Call to undefined function mysql_connect() | Veľmi starý kód, ktorý ešte používa funkcie spred PHP 7. Ten je potrebné prepísať. |
| Call to undefined function s iným názvom funkcie | Často chýba rozšírenie. Zistite, ktoré rozšírenie k danej funkcii patrí, a zapnite ho (pozri Zapínanie a vypínanie PHP rozšírení). |
| Allowed memory size of ... bytes exhausted | Skript má príliš málo pamäte. Zvýšte memory_limit (pozri PHP možnosti: upload_max_filesize, memory_limit a max_execution_time). |
| Maximum execution time of ... seconds exceeded | Skriptu to trvalo príliš dlho. Zvýšte max_execution_time, alebo zistite, prečo je taký pomalý. |
Krok 4: aktualizácia a nová skúška
- Vytvorte zálohu (pozri Zálohovanie a obnovenie: vytvorenie vlastnej zálohy v DirectAdmin).
- Aktualizujte WordPress (alebo iný softvér), vašu tému a všetky pluginy, zatiaľ čo je ešte aktívna pôvodná verzia PHP.
- Odstráňte pluginy, ktoré nepoužívate.
- Zapnite znova novú verziu PHP a znova otestujte vašu webovú stránku. Pozrite sa opäť aj do záznamu chýb.
Tip: Chcete najprv otestovať bez toho, aby to pocítili návštevníci? Pomocou Installatron vytvorte kópiu svojej stránky na subdoméne (pozri Klonovanie a vytvorenie testovacieho prostredia (staging)) a iba tento priečinok prepnite na novú verziu pomocou .htaccess (pozri PHP nastavenia pre jednotlivé priečinky a cez .htaccess).
Dočasné zobrazenie chýb na stránke
Vidíte iba biele okno a v zázname chýb nie je nič užitočné? Potom môžete chyby dočasne zobraziť priamo na stránke. V Select PHP version na karte Options zapnite začiarkavacie políčko pri display_errors. Znova otvorte stránku: teraz uvidíte chybové hlásenie. Potom display_errors hneď znova vypnite, pretože takéto hlásenie môže komukoľvek odhaliť informácie o vašej webovej stránke.
Ak používate WordPress, dá sa to urobiť aj pomocou týchto riadkov v súbore wp-config.php, nad riadkom That's all, stop editing!: define('WP_DEBUG', true); a define('WP_DEBUG_LOG', true);. WordPress potom zapisuje chyby do súboru wp-content/debug.log. Po skončení ich opäť odstráňte, alebo nastavte na false.
Radšej to nechať vyriešiť odborníkmi?
Nedarí sa vám to, alebo vaša webová stránka nebola roky aktualizovaná? Pomocou PHP upgrade pripravíme vašu webovú stránku na aktuálnu verziu PHP za pevnú cenu. Ak sa nám to nepodarí, dostanete peniaze späť.
