500-as hiba bővítményfrissítés után: a bővítmény biztonságos kikapcsolása

WordPress 4 perc olvasás

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 found a 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.

Vissza: WordPress leírások (39)