Ohodnotit tento článek :
2,5/5 | 2 názor
Tento článek byl pro vás užitečný ?
Ano
Ne
Vous avez noté 0 étoile(s)
Sommaire
Procédure
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.
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:

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.

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:

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:

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.
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.
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:

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:

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:

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.
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ě:
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í:

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

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

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.

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

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:
Tato chyba často indikuje, že funkce nebyla definována, jako v následujícím kódu:

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:
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:

Je docela možné se této chybě vyhnout tím, že:
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ž:
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í:
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 :
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:
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ý ?
Ano
Ne
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?