500 internal server error – hogyan javítsd?
Mi az a belső szerver hiba?
Az 500 internal server error, azaz a belső szerver hiba az egyik legidegesítőbb hiba, akár felhasználó, akár fejlesztő vagy, mert nem mond semmit a probléma okáról.
Bár szerverhibának van elnevezve, korántsem biztos, hogy a szerveren keresendő az ok, gyakran felhasználói oldalon keletkezik a probléma.
Az 500 hibakód üzenetet általában társítani szokták a webszerver összeomlási problémájával, de ez a hibaüzenet nem feltétlenül jelenti a tárhelyszolgáltató felelősségét. Ennek a hibának több oka lehet.
Az 500 internal server error gyakorlatilag azt jelenti, hogy a szerver olyan váratlan körülményekkel találkozott, amik megakadályozták a kérés teljesítését. Vagyis azt mondja, hogy valami nem működik rendesen, de nem részletezi a hiba pontos okát.
Fejlesztői oldalon általában úgy sikerül ezt a hibát előidéznünk, hogy írunk egy funkciót és sikerül egy elütést eszközölnünk, pl. kettőspontot a pontosvessző helyett vagy lemarad egy funkció lezárás, pl. egy kapcsos zárójel záró tagja. Amit persze pillanatok alatt helyre is lehet állítani. De mit tegyél mezei felhasználóként?
0. lépés: biztonsági mentés
Mindig ezzel kezdj mindent. Lépj be a cpanelbe, directadminba vagy amilyen tárhelykezelő felületed van és csinálj egy biztonsági mentést a honlapod fájljairól és az adatbázisodról.
1. lépés: engedélyezd a WordPress hibakeresést
Ftp-n keresztül a wp-config.php fájlt töltsd le, nyisd meg egy fájlkezelővel (NEM szövegszerkesztővel!). Keresd meg ezt a sort:
define( „WP_DEBUG”, false );
írd át a false értéket true értékre, mentsd el és töltsd vissza a fájlt a szerverre.
Ellenőrizd a honlapodat. Ha „Fatal error” üzenet látsz, akkor bővítmény vagy sablon okozza a hibát. Ki kell kapcsolnod (ftp-n átnevezed) az érintett bővítményt. Utána valószínűleg be tudsz lépni az adminba.
Ne felejtsd el a true értéket visszaírni false értékre a konfig fájlban.
2. lépés: error.log-ok átnézése
Van WordPress error.log, van szerver error.log (ez utóbbit többnyire nem látod osztott tárhelyen), de van access.log is, sőt, egyik-másik sablonnak, bővítménynek is láttam már saját error.logját. Néha a leggyorsabban itt lehet megtalálni az okot, de nem feltétlenül tudja bárki értelmezni.
Általában látod az elérési útvonalból, hogy melyik bővítményben van hiba, pl:
„PHP Fatal error: Uncaught Error: Access to undeclared static property: Themify_Builder::$builder_active_id in /home/domain/public_html/wp-content/plugins/themify-builder-pro/includes/class-tbp-utils.php:667”
Az access.log-ban kereshetsz kifejezetten az 500 értékre, ahol azt is látod, hogy mire vonatkozott a kérés.
Éppen ezért érdemes ezeket mielőbb átnézni vagy hozzáértővel átnézetni, hiszen akár hosszú hibakeresési órákat meg lehet spórolni.
3. lépés: nevezd át a .htaccess fájlt
Az egyik leggyakoribb oka az 500-as hibának, hogy hibás a .htaccess fájl. Ftp-n átnevezed és megnézed a honlapodat. Ha eltűnik az 500 error, akkor készíthetsz új .htaccess fájlt.
Töltsd fel a honlapodnak megfelelő kódrészletet innen az új .htaccess fájlodba: https://wordpress.org/support/article/htaccess/ és utána folytathatod a fájl bővítését.
4. lépés: kapcsold ki az összes bővítményt
A második leggyakoribb 500 hiba ok valamelyik bővítmény hibája.
Ha ftp-n átnevezed a plugins mappát, az automatikusan a bővítmények kikapcsolásával jár. Az ftp-n történő átnevezés után lépj be az adminba a bővítmények részhez. Ezután írd vissza a plugins mappa nevet és gyorsan kapcsold ki az admin felületen az összes bővítményt. (Ha nem ebben a sorrendben csinálod, könnyen lehet, hogy visszakapod az 500-as üzenetet, mielőtt át tudnál lépni a bővítmények részbe.)
Egyesével kapcsold be a bővítményeket és minden bővítmény bekapcsolása után ellenőrizd a honlapod működését. Így megtalálod a hiba okozóját. És majd eldöntöd, hogy mit kezdesz vele.
Például leggyakrabban PHP verzió váltásnál fordul elő, hogy egy-egy régebbi bővítmény nem kompatibilis az új PHP verzióval, így hibát okoz. Vagy sikerül hibás bővítményt telepítened.
5. lépés: válts alapértelmezett sablonra
A harmadik gyakori 500-as hiba ok – új sablonnál vagy sablonfrissítésnél szokott leginkább előfordulni -, hogy sablon okozza. Ha idáig eljutsz a hibakeresésben, akkor valamelyik Twenty sablont érdemes bekapcsolni.
Ha a sablonváltás megoldja a problémádat, akkor eldöntheted, hogy lecseréled a sablont, értesíted a sablon fejlesztőjét, javítod vagy javíttatod.
6. lépés: memóriakorlát növelése
Az is előfordulhat, hogy a weboldalad túl sok memóriát használ(na) és ez 500-as hibára fut.
Gyors segítség a wp-config.php-ban a memória limit emelése legalább 128MB-ra [kód: define ( ‘WP_MEMORY_LIMIT’, ‘128M’ );] vagy – szervertől függően – php.ini fájl létrehozása/módosítása, de ez nem biztos módszer.
A háttérben itt is rosszul kódolt, memória zabáló bővítmények vagy sablonok szokták a hibát okozni, tehát az átmeneti megoldás ellenére át kell nézni a honlapot a végleges megoldásért.
Ugyanakkor ne felejtsd el azt sem, hogy szerveroldalon globálisan meg van határozva egy adott mennyiségű memóriakorlát, amit nem tudsz túllépni.
7. lépés: telepítsd újra a WordPresst
Ritkán, de előfordulhat, hogy sérült fájlok vannak a WordPressben. A megoldás egyszerű. Letöltöd, kicsomagolod a WordPresst és ftp-n felmásolod, felülírva a meglévő fájlokat.
8. lépés: összetett problémák keresése
Ugyan fehér holló, de előfordulhat, hogy bizonyos lépéseknek a fentiekből párhuzamosnak kell lenni. Pl. egy bővítmény ír a .htaccess fájlba, így egy hibás bővítmény hibássá tudja tenni a .htaccess fájlt is. Ilyenkor csak akkor van megoldás, ha a bővítményt is kikapcsoljuk és a .htaccess-ből is kivesszük a hibás sor(oka)t.
Ha a fentiek nem vezetnek eredményre, akkor jön szóba a szerveroldal.
9. lépés: PHP verzió váltás
Ma már a legtöbb szerveren a PHP 7.x verziók is telepítve vannak. Azonban, ha régi telepítésű a honlapod, előfordulhat, hogy a honlapod még 5.x verzión fut. A PHP verzióváltásnál körültekintően kell eljárnod. Érdemes végignézned a használt bővítmények, sablon kompatibilitását a PHP verzióval. Ma már a sablonokat, bővítményeket a 7-es verziókra írják, és a 7-es verziókban sok funkció nincs már, ami az 5-ösben volt.
10. lépés: tárhelyszolgáltató megkeresése
Néha az is előfordul, hogy szerveroldalon frissítenek és valami elcsesződik a beállításokban. Ilyenkor csak a tárhelyszolgáltató tudja megoldani a problémát. Sokszor a tárhelyszolgáltatók a WordPresst okolják a hiba miatt, ezért ne felejtsd el megírni a tárhelyszolgáltatódnak, hogy milyen lépéseket tettél a hiba kiderítésére, megoldására.
Összefoglalva
Az „500 internal server error” hiba okának megtalálása nem egyszerű, a javítása lehet egyszerű vagy bonyolult is. De a fentiekkel ki lehet deríteni a hiba okát.
Ha 500-as hibád van és a fenti leírás ellenére sem boldogulsz a javítással, szívesen segítünk, kérj ajánlatot.