| |

Hogyan frissítsünk PHP 8 verzióra úgy, hogy elkerüljük a hibákat a weboldalon?

Amikor ezt a cikket írom, épp életciklusa végéhez ér a PHP 7.4-es verziója, így nem kap többé biztonsági frissítéseket. Ideje frissíteni a PHP-t, így összefoglalom, hogyan próbáljuk megelőzni a hibákat a weboldalon. Azt is leírom, milyen problémákkal szembesültem különböző tárhelyeken, ahol joomla és wordpress weboldalaim vannak, és mi volt a megoldás. Néhol a tárhelyszolgáltató frissíti a PHP-t, a weboldal tulajdonosok pedig csak egy hibaüzenettel szembesülnek a weboldalukon. Egy 500 Error esetén próbálkozzunk a tárhelyszolgáltatónál, hátha meg tudja oldani a problémát. Ez a cikk inkább a hibák elkerüléséről szól, de a cikk végén van 1-2 tipp 500 Error esetére is.

1. Kompatibilitás ellenőrzése

Először is ellenőrizzük, hogy a szoftvereink mely PHP verzióval kompatibilisek. Ez nem is olyan egyszerű. A kisebb bővítményeinkről csak utólag derül ki, hogy kompatibilisek-e, így hát nem biztos hogy elkerülhetjük a címben említett hibaüzeneteket. Ne a legújabb PHP verzióra frissítsünk, amikor ezt írom, PHP 7.4-ről 8.0-ra érdemes. A wordpress kompatibilitásáról itt található információ, míg a joomla esetén ezen az oldalon tájékoztatnak minket.

2. Mentés és frissítés

Készítsünk mentést a weboldalunkról, és fríssítsük a WordPress-t vagy Joomla-t, a sablont és a bővítményeket. Teszteljük a weboldalunkat a frissítések után!

3. Hibák kiiratása vagy naplózása

A Joomla admin felületén a Global configurations/Server/Error reporting : Maximum beállítással irathatjuk ki a hibákat. A wordpress-ben pedig a wp-config.php fájlban kell a következő módosításokat elvégeznünk:

// WP_DEBUG bekapcsolása
define( 'WP_DEBUG', true );

// naplózás a /wp-content/debug.log fájlba
define( 'WP_DEBUG_LOG', true );

// ne a weboldalra írja ki a hibákat
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Ekkor a /wp-content/debug.log fájlba írja a hibaüzeneteket.

4. PHP verzió váltás

cpanel 1

A PHP verzióváltást a cpanel-ben végezhetjük el. Ha csak a MultiPHP menedzser elérhető a cpanel-ben, akkor ott kell beállítani a új PHP verziót, majd a MultiPHP ini szerkesztőben érdemes beállítani pár PHP direktíva értéket. A wordpress-hez minimum ekkora értékeket javasolok: memory_limit=512M, post_max_size=32M, upload_max_size=32M. Joomla esetén kisebb memory_limit=128M is elég. A megnövelt memory_limit-tel elkerülhetjük az alábbi hibát:

Fatal error:  Allowed memory size of 33445566 bytes exhausted

Ha csak a Select PHP version elérhető a cpanel-ben, akkor ott kell beállítani a új PHP verziót, és a fenti PHP direktíva értékeket is. Itt még PHP kiterjesztéseket/modulokat is be lehet kapcsolni ha szükséges. Az adatbáziskapcsolat biztosításához érdemes bekapcsolni az alábbi képen látható PHP modulokat, de ha nincs mysqlnd, akkor mysqli-t keressünk. A wordpress még igényli az imagick modul bekapcsolását is.

php modulok

Ezzel elkerülhetjük az alábbi típusú hibaüzeneteket:

PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in public_html/wp-includes/class-wpdb.php:1810

Egyéb hibaüzenetek esetén lehet hogy ki kell kapcsolnunk azt a wordpress vagy joomla bővítményt, amelyre a hibaüzenet vonatkozik, mert lehet hogy nem kompatibilis az új PHP verzióval. Ehhez a cpanel-ben vissza kell állnunk a PHP korábbi verziójára, hogy be tudjunk lépni a WordPress vagy Joomla admin felületére. Az is működhet, ha átnevezzük a hibás bővítmény könyvtárát.

Végül, ha kiküszöböltünk minden hibát az alapos tesztek során, kapcsoljuk ki a hibák kiiratását vagy naplózását. Állítsuk vissza a Joomla admin felületén a Global configurations/Server/Error reporting : None értéket, WordPress-ben pedig a define( ‘WP_DEBUG’, false); értéket a wp-config.php fájlban, és töröljük a debug.log fájlt!

Hasonló Bejegyzések