Ha egy bővítmény frissítése után a webhely 500-as hibát ad, vagy a „Súlyos hiba történt a webhelyünkön.” üzenet jelenik meg, szinte mindig az új bővítménykód nem fér össze valamivel: a PHP-verzióval, egy másik bővítménnyel vagy a WordPress verziójával. A frissítés felírja az új fájlokat, a bővítmény aktív marad, és a WordPress minden kérésnél megpróbálja betölteni, ezért az admin felület is leállhat.
A sorrend: először hozza vissza a webhelyet, utána derítse ki, mi volt a baj. Az 500-as hiba egyéb okairól (.htaccess, jogosultságok, PHP-beállítások) blogcikkünk ír. A lépéseket egy szándékosan elrontott bővítménnyel próbáltuk ki egy cPanel tárhely teszt-webhelyén.
1. Nézze meg a hibanaplót
Az aWh cPanel szerverein a PHP a hibákat a home könyvtár logs/php.error.log fájljába írja, és a webhely gyökerében egy error_log fájl is keletkezhet. A végzetes hiba sora megnevezi a fájlt, így a bővítményt is:
PHP Fatal error: Uncaught Error: Call to undefined function kb_nem_letezo_fuggveny() in /home/felhasznalonev/public_html/wp-content/plugins/pelda-bovitmeny/pelda-bovitmeny.php:6
A Terminalban vagy SSH-n:
grep -i "fatal" ~/logs/php.error.log | tail -n 5
ls -lt ~/public_html/wp-content/plugins/ | head -5
A második parancs a legutóbb módosított bővítménymappákat listázza: a frissen frissített bővítmény az első gyanúsított. SSH nélkül a naplót a cPanel Fájlkezelő felületén nyithatja meg (a logs mappa a home könyvtárban van).
A WordPress a „súlyos hiba” esetén e-mailt is küld az admin címére, benne egy helyreállítási linkkel, amellyel a hibás bővítmény nélkül léphet be az admin felületre. Erről a fehér képernyőről szóló cikk ír.
2. Kapcsolja ki a bővítményt
WP-CLI-vel (ajánlott)
A WP-CLI a WordPress saját kikapcsolási folyamatát futtatja, ahogy az admin felület is. Ha a hiba már a bővítmény betöltésekor jelentkezik, a WP-CLI maga is elakad (a wp plugin list ugyanazt a végzetes hibát írja ki). Ilyenkor a --skip-plugins kapcsolóval hagyja ki a hibás bővítményt a betöltésből:
cd ~/public_html
wp plugin deactivate pelda-bovitmeny --skip-plugins=pelda-bovitmeny
A válasz: Plugin 'pelda-bovitmeny' deactivated. A bővítmény nevét (a mappája nevét) a hibaüzenet útvonalából olvashatja ki. Többwebhelyes telepítésnél, hálózati szinten bekapcsolt bővítménynél adja hozzá a --network kapcsolót.
A WP-CLI az SSH-hozzáféréssel rendelkező csomagokban (cP Premium, cP Pro, cP Pro 100) érhető el; az alapokat a WP-CLI használatáról szóló cikk írja le.
A mappa átnevezésével (SSH nélkül)
A cPanel Fájlkezelő felületén nyissa meg a public_html/wp-content/plugins mappát, és nevezze át a bővítmény mappáját, például pelda-bovitmeny.hibas névre. A WordPress a kódot nem találja, ezért nem tölti be, és a webhely a teszten azonnal újra elérhető lett.
Ez a gyorsabb, de durvább út: a bővítmény a WordPress szerint továbbra is aktív (az active_plugins beállításban bent marad a hiányzó fájl), és a saját kikapcsolási lépései nem futnak le, így az ütemezett feladatai és beállításai a helyükön maradnak. Amint a webhely működik, nyissa meg az admin felületen a Bővítmények oldalt: a WordPress ekkor jelzi, hogy a bővítmény hiányzik, és kikapcsolja.
Ha a kikapcsolás után is maradnak hibák
Nézze meg, maradt-e a bővítménynek ütemezett feladata, mert ezek a háttérben tovább okozhatják a hibát:
wp cron event list | grep -i pelda
3. Álljon vissza a működő verzióra
- WP Toolkit visszaállítási pont: ha a frissítést a WP Toolkit végezte, és be volt kapcsolva a visszaállítási pont, a webhely kártyáján egy kattintással visszaléphet.
- Napi mentés: a JetBackup felületén csak a bővítmény mappáját is visszaállíthatja a frissítés előtti napról (visszaállítás mentésből).
- Korábbi verzió a WordPress.org-ról: a bővítmény wordpress.org oldalán az Advanced View linkre kattintva, az oldal alján letöltheti a régebbi verziókat. WP-CLI-vel egy lépésben:
wp plugin install pelda-bovitmeny --version=1.4.2 --force --skip-plugins=pelda-bovitmeny
wp plugin activate pelda-bovitmeny
4. Olvassa el a hibát, mielőtt újra bekapcsolja
A leggyakoribb esetek:
Call to undefined function str_contains()vagy más, újabb PHP-függvény: a bővítmény újabb PHP-t igényel, mint amit a webhely használ. Váltson újabb PHP-verzióra a Select PHP Version felületen (PHP-verzió beállítása), vagy maradjon a régi bővítményverziónál. A PHP-váltás után az egész webhelyet ellenőrizze, ne csak ezt a bővítményt.Class "…" not founda WordPress egyik osztályára: a WordPress-verzió túl régi a bővítményhez. Frissítse a WordPresst.Cannot redeclare function …(): két bővítmény ugyanazt a függvénynevet használja. Az egyiket távolítsa el, vagy jelezze a fejlesztőnek.Allowed memory size of … bytes exhausted: az új verzió több memóriát kér. Erről a memóriakorlátról szóló cikk ír.
Ha a naplóban nincs semmi, kapcsolja be a WordPress hibanaplózását (hibakeresési mód), és ismételje meg a hibát.
5. Legközelebb kisebb kockázattal
- Írja fel a bővítményt és a verziót (például „a pelda-bovitmeny 1.5.0 PHP 8.1-et igényel”), hogy legközelebb ne kelljen újra kideríteni.
- A fontos bővítményeket előbb egy staging másolaton frissítse.
- Kapcsolja be a WP Toolkitben a visszaállítási pontot, vagy az Intelligens frissítés funkciót, amely a frissítést előbb egy másolaton próbálja ki. A frissítési módok összevetését külön cikk tartalmazza.
Ha a webhely bővítményfrissítés nélkül, magától kezdett 500-as hibát adni, az általános 500-as hibáról szóló cikk és a CloudLinux erőforráslimitekről szóló cikk segít. Ha elakad, írjon ügyfélszolgálatunknak.