14. fejezet · 14.6
Hibák PHP-frissítés után és a hibanapló megkeresése
Ön frissítette a PHP verzióját, és most a weboldala fehér, hibaüzenetet jelenít meg, vagy egy része nem működik többé. Ez szinte mindig egy bővítmény, egy sablon vagy saját kód miatt van, amely nem alkalmas az új verzióhoz. Semmi pánik: a régi verziót egy perc alatt visszaállítja, majd nyugodtan kiderítheti, mi a probléma.
1. lépés: a régi verzió visszaállítása
Keresse meg a Select PHP version menüpontot, válassza ki újra azt a verziót, amelyet korábban használt, és kattintson az Apply gombra (lásd A PHP-verzió kiválasztása (Select PHP version)). A weboldala ezután azonnal úgy fog működni, mint korábban. Ha az új verziónál kiterjesztéseket vagy beállításokat módosított, azok megmaradnak egy következő próbálkozáshoz.
2. lépés: a hibaüzenet megkeresése a hibanaplóban
A PHP a hibákat a domain Error log-jába írja. Ott pontosan megtalálja, melyik fájl és melyik sor okozza a problémát.
- Kattintson a DirectAdmin felületén a Files & Info alatt a Site Summary / Logs / Statistics lehetőségre.
- Kattintson a domainje mellett az Error log lehetőségre.
- Nézze meg az utolsó sorokat, legalul. Keresse a PHP Fatal error, PHP Parse error vagy PHP Warning szöveget tartalmazó sorokat (1).

A naplókról bővebben itt olvashat: Oldal áttekintés és naplók: a hibanapló és a hozzáférési napló.
3. lépés: az üzenet megértése
Az üzenetben szerepel a fájl elérési útja. Ebből általában látható, melyik bővítmény vagy sablon a hibás. Néhány példa:
| Ezt látja az üzenetben | Jelentés |
|---|---|
| .../wp-content/plugins/bővítmény-neve/... | Az a bővítmény nem működik az új verzióval. Frissítse, vagy keressen helyette másikat, ha már nem támogatott. |
| .../wp-content/themes/sablon-neve/... | A sablonja túl régi. Frissítse, vagy kérjen frissítést a készítőjétől. |
| Call to undefined function mysql_connect() | Nagyon régi kód, amely még a PHP 7 előtti függvényeket használja. Ezt át kell írni. |
| Call to undefined function, más függvénynévvel | Gyakran egy kiterjesztés hiányzik. Nézze meg, melyik kiterjesztéshez tartozik az adott függvény, és kapcsolja be (lásd PHP-bővítmények be- és kikapcsolása). |
| Allowed memory size of ... bytes exhausted | A szkriptnek nincs elég memóriája. Növelje a memory_limit értékét (lásd PHP opciók: upload_max_filesize, memory_limit és max_execution_time). |
| Maximum execution time of ... seconds exceeded | A szkript futása túl sokáig tartott. Növelje a max_execution_time értékét, vagy derítse ki, miért olyan lassú. |
4. lépés: frissítés és újrapróbálkozás
- Készítsen biztonsági mentést (lásd Biztonsági mentés és visszaállítás: saját biztonsági másolat készítése a DirectAdmin-ban).
- Frissítse a WordPresst (vagy más szoftverét), a sablonját és az összes bővítményt, miközben még a régi PHP-verzió aktív.
- Távolítsa el a nem használt bővítményeket.
- Kapcsolja vissza az új PHP-verziót, és tesztelje újra a weboldalát. Nézze meg ismét a hibanaplót is.
Tipp: Az Ön oldalának másolata egy aldomenen (lásd Klónozás és tesztkörnyezet (staging) létrehozása) ugyanazt a PHP-verziót használja, mint a csomag többi része. Egy új verzió tesztelése anélkül, hogy a látogatók ezt észrevennék, tehát csak egy külön csomagban lehetséges. Vagy válasszon egy nyugodt pillanatot: a régi verzióra való visszaállítás mindig azonnal elvégezhető.
Hibák ideiglenes megjelenítése az oldalon
Csak egy fehér képernyőt lát, és az Error logban semmi hasznosat nem talál? Ekkor ideiglenesen megjelenítheti a hibákat magán az oldalon. A Select PHP version felületén, az Options fülön kapcsolja be a display_errors jelölőnégyzetet. Nyissa meg újra az oldalt: most már látja a hibaüzenetet. Ezután azonnal kapcsolja ki újra a display_errors beállítást, mivel egy ilyen üzenet információkat árulhat el a weboldaláról bárki számára.
Ha WordPresst használ, ez a következő sorokkal is megoldható a wp-config.php fájlban, a That's all, stop editing! sor fölött: define('WP_DEBUG', true); és define('WP_DEBUG_LOG', true);. A WordPress ekkor a hibákat a wp-content/debug.log fájlba írja. Ezeket utólag távolítsa el, vagy állítsa vissza false értékre.
Inkább megoldatná velünk?
Nem sikerül, vagy a weboldala évek óta nem volt frissítve? A PHP-frissítés szolgáltatással fix áron felkészítjük a weboldalát egy aktuális PHP-verzióra. Ha mégsem sikerülne, visszakapja a pénzét.
