Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Procédure

Jak vyladit prázdnou stránku nebo chybu 500

Když se pokusíte navštívit webovou stránku a zobrazí se chybová zpráva "500 Internal Server Error", znamená to, že se na webové stránce něco pokazilo. Tato chyba může být obzvláště frustrující, protože vám nemusí poskytnout žádné informace o konkrétní příčině chyby. V tomto článku se dozvíte, jak chybu 500 na webu odstranit.

Jaký je rozdíl mezi prázdnou stránkou a chybou 500?

Prázdná stránka nemusí nutně znamenat chybu 500 a naopak. Chyba 500 znamená, že při zpracování požadavku HTTP došlo k chybě. Může se jednat o chybu při provádění přidruženého skriptu, problém s přístupem ke zdroji apod. což způsobí, že webový server vrátí odpověď s chybovým kódem 500. Prázdná stránka naproti tomu znamená, že webový server nevrátil v odpovědi žádná těla, nebo dokonce nevrátil žádnou odpověď.

V některých situacích chyba 500 znamená, že webový server nemá žádnou odpověď, a proto způsobí prázdnou stránku. To je možný případ, kdy nebyla nakonfigurována žádná stránka s chybou 500, nebo také v případě, že byl zakázán chybový výstup, a web tak nemá žádnou chybovou zprávu, kterou by bylo možné zmínit.

Některé prohlížeče, například Chrome a Internet Explorer, zobrazí vlastní chybovou stránku 500, když obdrží chybový kód HTTP v hlavičce, aniž by server poskytl jakýkoli obsah v těle odpovědi:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Chyby 500 jsou často spojeny s problémem s jedním ze souborů .htaccess působících na adresu URL nebo s chybou PHP. Pokud tedy aktivujete zobrazování chyb pomocí volby php.ini display_errors, měly by se místo chyby 500 zobrazovat chyby PHP.

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Jak zjistím, zda se jedná o chybu 500?

Chcete-li zjistit, zda se jedná o chybu 500, musíte se podívat na kód chyby HTTP vrácený webovým serverem do webového prohlížeče. Ten lze zjistit pomocí karty "Síť" ve vývojářské konzole prohlížeče:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Jak identifikujete problémy způsobující chybu 500?

Nejprve je třeba zkontrolovat soubory protokolu spojené s požadavkem HTTP: soubor protokolu Apache a soubor protokolu PHP. Posledních 300 událostí, které se vás týkají, v souboru protokolu Apache si můžete prohlédnout z ikony "Errors" v rozhraní cPanel, zatímco soubor protokolu PHP je obvykle soubor "error_log" viditelný vedle příslušného souboru PHP:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Je však možné, že se chyby v protokolech nezobrazují. Může to být důsledek konfigurace, která brání zobrazování a/nebo protokolování chyb PHP. Zjistěte více.

Pokud však používáte WordPress, Prestashop nebo Joomla, je docela možné, že se žádné změny nezobrazí. V takovém případě je třebaaktivovat zobrazování chyb v jejich příslušných konfiguračních souborech.

Jak aktivujete režim ladění webu?

Většina systémů CMS, jako je WordPress, má interní systém zpracování chyb, který zabraňuje zpracování parametrů PHP na místě a provedení akce v závislosti na vyskytnuté chybě. Aktivací režimu ladění žádáte tento interní systém pro správu chyb, aby zobrazoval chyby a/nebo zvýšil slovní rozsah souborů protokolu.

Chcete-li aktivovat režim ladění, můžete se připojit přímo ke"Správci souborů" přístupnému z rozhraní cPanel a upravit příslušný konfigurační soubor, abyste tento režim aktivovali.

Jak aktivovat režim ladění ve službě WordPress?

Pokud byl váš web vytvořen pomocí systému WordPress, můžete režim ladění aktivovat ze souboru"wp-config.php" v kořenovém adresáři vašeho webhostingu. K tomu stačí změnit konstantu"WP_DEBUG" na"true" místo"false".

Pokud chcete, můžete také přidat konstantu WP_DEBUG_LOG, aby se chyby zaznamenávaly do souboru"wp-content/debug.log".

Měli byste také zkontrolovat, zda není v konfiguračním souboru definována konstanta"WP_DEBUG_DISPLAY". Pokud ano, je třeba tuto hodnotu rovněž nastavit na true.

Konfigurační soubor by měl vypadat takto:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Jak aktivuji režim ladění v Prestashopu?

V Prestashopu můžete režim ladění aktivovat tak, že přejdete do souboru"define.inc.php" ve složce"config".

Budete muset změnit příkaz "_PS_MOD_DEV_" na"true" místo"false". V případě potřeby můžete také aktivovat režim"_PS_DEBUG_PROFILING_", který vám poskytne více informací.

Konfigurační soubor by měl vypadat takto:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Jak aktivuji režim ladění v systému Joomla?

U systému Joomla můžete režim ladění aktivovat úpravou souboru configuration.php. V tomto souboru musíte změnit proměnnou"$debug" na 1, abyste jej aktivovali. Také je třeba změnit proměnnou " $error_reporting " na"maximum", aby se zobrazovaly všechny chyby.

Konfigurační soubor by měl vypadat takto:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Jak aktivuji režim ladění v jiných CMS?

Je docela možné, že používáte jiný CMS. Chcete-li zjistit, jak aktivovat režim ladění, můžete také zadat do vyhledávače"název CMS + Debug". Měli byste se tak dostat přímo na návod, který vysvětluje, jak tento režim aktivovat.

Porozumění různým chybám PHP

Pochopit původ chyby 500 je poměrně snadné, protože se velmi často opakují stejné chyby.

1. První a nejčastější chybou je"Parse error". Ta často označuje syntaktický problém (chybu v programování vašeho kódu). Chyba je definována následovně:

  • Chyba parsování: definuje, že se jedná o chybu v kódu.
  • Zobrazí se zpráva v angličtině, která poskytuje více informací o typu chyby
  • Cesta k souboru, ve kterém sechyba vyskytuje, a řádek, kterého se chyba týká.

Pokud vezmeme příklad souboru index.php na našem webu Wordpress, kde na konci řádku 17 chybí středník, je webový soubor, ve kterém se chyba nachází, následující:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Chyba viditelná při přechodu na adresu URL bude vypadat následovně:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

2. Chyba"Parse error: syntax error, unexpected end of file" znamená, že na konci souboru zřejmě něco chybí.

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

V tomto kódu například chybí závorka uzavírající příkaz if.

3. Chyba parseru: syntaktická chyba, neočekávaný (T_STRING), očekávání ','nebo'; ' je často způsobena chybou související s uvozovkami ve vašem kódu.

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

V tomto kódu chybí zpětné lomítko u slova"error", stejně jako v následujícím kódu, aby to fungovalo:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

4. Můžete se také setkat s chybou typu"Fatal Error". Jedná se o jednu z nejzávažnějších chyb, se kterou se můžete setkat. Způsobí také zastavení vašeho skriptu. Je definována následujícím způsobem:

  • Fatální chyba: Tato zpráva označuje, že chyba je fatální a zastaví běh vašeho skriptu.
  • Zpráva: Za kódem "Fatální chyba" následuje zpráva, která vysvětluje důvod chyby.
  • Přístupová cesta: Je uvedena přístupová cesta a řádek způsobující problém.

Tato chyba často indikuje, že funkce nebyla definována, jako v následujícím kódu:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Proto se zobrazí následující chyba: Fatal Error: Uncaught Error: Call to undefined function (Fatální chyba: Nevynucená chyba: Volání nedefinované funkce).

Tato chyba je často způsobena jednou z následujících příčin:

  • Máte překlep v definované funkci.
  • Soubor PHP obsahující funkci nebyl načten do skriptu.
  • Pokud je funkce součástí rozšíření PHP, nemusí být toto rozšíření PHP načteno.

5. Je docela možné, že se zobrazí chyba"Fatal Error: cannot redeclare", která znamená, že funkce byla definována podruhé. Kód by mohl vypadat takto:

Diagnostika a oprava chyby 500 na webu hostovaném v cPanelu

Je docela možné se této chybě vyhnout tím, že:

  • změnou názvu předefinované funkce
  • Může se také jednat o problém se jmenným prostorem. V takovém případě je třeba zkontrolovat jmenný prostor a uvést úplnou přístupovou cestu k funkci.

6. Může dojít k chybě"Fatal Error: allowed memory size exhausted".

To znamená, že skript PHP využívá příliš mnoho paměti RAM a překračuje maximální hodnotu povolenou v souboru PHP.INI. Jedná se o hodnotu "memory_limit". Tuto hodnotu můžete změnit ve vzorcích panelu cPanel. Pokud i přes zvýšení hodnoty na dostatečně vysokou úroveň problém přetrvává, může to být tím, že se ve vašem skriptu PHP příliš často (nebo dokonce donekonečna) opakuje operace spotřebovávající velké množství paměti. Možnou příčinou tohoto typu chyby jsou také nekonečné smyčky.

7. Chyba"Fatal Error: Maximum execution time exceeded" znamená, že byla překročena doba provádění vašeho skriptu. Hodnotu"max_execution_time" můžete upravit v konfiguraci souboru PHP.INI. Všimněte si však, že v našich sdílených hostingových balíčcích cPanel není povolen žádný proces běžící déle než 490 sekund, ale především, že pokud stránka vyžaduje vyšší max_execution_time, znamenalo by to také, že se bude pomaleji načítat, což obecně není žádoucí. Pokud stránka, která tuto chybu vygenerovala, zpracovává velké množství dat, doporučujeme provádět dávkové zpracování. Například místo zpracování 1000 produktů při každém otevření stránky by bylo vhodnější zpracovávat dávky po 100 produktech, například pomocí požadavků AJAX. A získáte nižší TTFB (Time-To-First-Byte).

8. Chyba"Fatal error: Uncaught Error: Call to undefined function mysql_connect()" znamená, že ve verzi PHP, kterou používáte, není načten modul"mysql". K chybě dochází, když:

  • PHP verze 7 nebo vyšší, ale váš web není s touto verzí kompatibilní.
  • Používáte verzi PHP5, ale modul "MySQL" není aktivován.

Verzi PHP můžete snadno změnit v rozhraní cPanel v části"Vybrat verzi PHP".

9. Chyba"Oprávnění odepřeno" znamená, že PHP nemá práva pro přístup k definovanému souboru nebo složce. Tuto chybu lze často vidět v následující podobě:

Warning file_put_contacts(/home/c123456/public_html/dossier/file.php): failed to open stream: Permission denied in /home/c123456/index.php on line 20

V tomto případě je třeba zkontrolovat chmods u souborů a složek. V zásadě jsou chmods následující:

  • 644 : Pro soubor
  • 755 : pro složku

10. Chyba"Žádný takový soubor nebo adresář" znamená, že PHP potřebuje zahrnout soubor, který se na vašem FTP prostoru zřejmě nenachází. Chyba představuje následující:

Warning: require_once(/home/c123456/public_html/dossier/fichier.php): failed to open stream: No such file or directory in /home/c123456/public_html/index.php on line 20

V tomto případě je třeba :

  • Zkontrolovat, zda daný soubor existuje na vašem FTP prostoru. Pokud tomu tak není, budete muset soubor znovu nahrát.
  • Zkontrolovat, zda máte k souboru správná práva, tedy CHMOD. Složky mají obvykle chmod 755 a soubory chmod 644.
  • Zkontrolujte, zda je cesta uvedená ve vašem skriptu PHP správná.

11. Může se zobrazit chyba"Warning:session_start(): Nelze odeslat hlavičky cookie relace, které již byly odeslány", což znamená, že již byl vygenerován datový tok, a proto již není možné použít funkci"session_start". Tuto chybu lze zobrazit v následující podobě:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/c123456/public_html/dossier/session.php:2 in /home/c123456/public_html/dossier/session.php on line 20

Následují 3 možné příčiny této chyby:

  • direktiva zobrazující text před voláním funkce
  • Problém se znakovou sadou (zejména BOM_UTF8). Tato chyba se vždy vyskytuje na prvním řádku kódu
  • Znaky, které jsou na obrazovce neviditelné, ale ve vašich souborech se vyskytují. Editory kódu, například Visual Studio Code, umožňují tyto chyby zobrazit.

Závěr

Nyní můžete zjistit příčinu chyby 500 nebo prázdné stránky. Můžete také řešit problémy na svých webových stránkách.

Neváhejte položit své dotazy a/nebo vznést připomínky.

Ohodnotit tento článek :

2,5/5 | 2 názor

Tento článek byl pro vás užitečný ?

Article utileAno

Article non utileNe

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Podobné články

3mn čtení

Wordpress v cPanelu: Řešení problému s bílou stránkou nebo chybou 500

1mn čtení

Jak zobrazit soubory protokolu Apache a PHP v panelu cPanel

0mn čtení

Jak opravím chybu 403 Forbidden v cPanelu?

0mn čtení

Jak opravím chybu 404 v cPanelu?


Položte týmu LWS a jeho komunitě otázku