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 hibanapló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 Fájlok & Infó alatt a Siteoverzicht & logboeken lehetőségre.
- Kattintson a domainje mellett a Foutenlogboek 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: Előbb szeretné tesztelni anélkül, hogy a látogatók ezt észrevennék? Készítsen az Installatronnal másolatot az oldaláról egy aldomainre (lásd Klónozás és tesztkörnyezet (staging) létrehozása), és csak azt a mappát állítsa az új verzióra .htaccess fájllal (lásd PHP-beállítások mappánként és .htaccess fájlon keresztül).
Hibák ideiglenes megjelenítése az oldalon
Csak egy fehér képernyőt lát, és a hibanaplóban 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-upgrade 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.
