← Zpět na všechny články blogu

Jak na chybu Error 500

David Janík
David Janík Aktualizováno 20. 3. 2025 – 13 min. čtení
Blog

Každý uživatel webu určitě na tuhle nepříjemnost narazil. Internal server error s HTTP kódem 500. Není to nic neobvyklého a ujišťujeme vás, že z 99% není chyba na vašem přijímači.

V tomto článku se podíváme, co tuto chybu nejčastěji způsobuje, jak to je ve WordPressu a jak úspěšně chybu podchytit. Také se dozvíte, jak správně uživatele o problému informovat.

Co znamená chyba 500?

Název “internal server error” trochu napovídá, že za chybu může pouze server. Chyba lávky. Za error často může právě chyba v aplikaci. Není to nic neobvyklého, jsme jenom lidi a špatný kód nebo nepromyšlené situace už k životu programátorů prostě patří. Důležitý je hlavně vědět, jak takové chyby vyřešit.

Quick fix na straně uživatele? Pomůže maximálně refresh stránky a promazání cache. Nic víc kromě kontaktování majitele stránek bohužel nezmůžete.

Nejčastější příčiny chyby 500

Podíváme se na ty nejčastější důvody, které jsme vypozorovali. Bohužel možností je dost a budete muset ověřit více zdrojů. Tak pojďme na to.

Rozdílné verze PHP

Často se stane, že programátor kód (webu, aplikace) přizpůsobí pouze starší verzi PHP (například 5.6) a majitel webu nemá tušení, co to znamená. Takže u svého hostingového providera požádá o navýšení verze PHP například na PHP 7.x, protože slyšel, že je o 30 % rychlejší. Provider požadavku vyhoví, jelikož nezná okolnosti a za chvíli se mu vrátí hovor od naštvaného majitele, že mu rozbil web.

Nezkušený majitel webu, bohužel neví, že nestačí změnit pouze verzi PHP na serveru. Nejdříve se totiž musí “aktualizovat” zdrojový kód, aby byl kompatibilní s novější verzí. Teprve potom bude rychlejší o těch požadovaných 30 %. Zkuste si na to příště vzpomenout, až budete řešit podobnou situaci i vy.

U nás si zákazníci mohou verzi PHP změnit i sami. Ať už na webhostingu nebo na serverech z naší administrace VPS Centra. Snažíme se zákazníkům život zpříjemňovat, ale bohužel se občas stane pravý opak. 🙂

Rozdílná nastavení PHP

PHP má různá rozšíření a nastavení. To opět může způsobit problém, když aplikace nebo web očekává nějaké chování od PHP a nedočká se ho. To způsobí paseku a zobrazí se právě chyba 500.

Stačí do souboru .htaccess přidat zobrazování PHP chyb:

php_flag display_errors on

Pak přidáme kousek kódu do PHP souboru, který byl zodpovědný za zobrazování obsahu.

  ini_set('display_errors', 1);
?>

Poté otevřete stejnou stránky, kde by se nyní měly chyby podrobně zobrazit a můžete je začít řešit.

Vždy myslete na to, že hostingový provider není za vaše webové stránky či aplikace přímo zodpovědný a s tímto vám přímo nepomůže. To samozřejmě neznamená, že vás necháme na holičkách. Pomůžeme vás nasměrovat k tomu, kde by mohl být zakopaný pes.

Došlo místo na disku?

Místo na disku samo od sebe nedojde. To se děje pouze v případě, že máte vlastní VPS a v momentě, kdy uživatel ignoruje notifikační e-mail, který na docházející místo na serveru upozorňuje. Ve chvíli, kdy server nemá kam ukládat cookies nebo data v databázi, pak teprve nastává opravdový problém.

Určitě se bude hodit návod, jak si na VPS navýšit parametry bez našeho zásahu. Tento návod ale funguje jen v případě, že serveru nedošlo místo úplně. Pak už je lepší rovnou volat.

U webhostingu vám pouze pošleme notifikační e-mail. Váš web to ale nijak neovlivní, protože “fyzicky” na disku místo stále je. To si hlídáme my. Vám pak chodí pouze automatizované oznámení, že překračujete pronajatý prostor a jednou za měsíc to spolu řešíme.

Doporučujeme na docházející místo dávat pozor a případně se svého providera zeptat, jak danou situaci řeší. Pokud nic nepomůže, rovnou můžete přejít k nám. S tím vám pomůže náš skvělý návod: Jak na migrace.

Chyba v kódu

Ve zdrojovém kódu aplikace nebo webu se odehrává další část alchymie. Chyba 500 může vyskočit např. když:

  • chybí středník,
  • se volá po neexistující funkci,
  • rozšíření PHP není na serveru dostupné,
  • zdrojový kód není na používanou PHP verzi aktualizovaný.

Když programátoři pracují na více projektech zároveň, mohou zapomenout, že každý projekt a server je nastaven trochu jinak. Problémy jsou většinou snadno řešitelné, jen je potřeba o nich vědět. Po přečtení celého článku budete na řešení chyb 500 experti. 🙂

Freelo - Nástroj na řízení úkolů a projektů

Přidej se, pozvi svůj tým a klienty, rozděl práci a sleduj, jak se úkoly dají do pohybu.

Špatná oprávnění

Může se stát, že webové soubory či složky mají špatně nastavená oprávnění. Pomocí WinSCP si můžete zkontrolovat, zda veškeré složky a soubory mají správné oprávnění. Nejčastěji 755. Můžete se také připojit na SSH a ve složce webu oprávnění zkontrolovat. Stačí ve složce zadat příkaz “ll” (dvě malá L) a zobrazí se oprávnění daných souborů či složek.

Většina skriptů vyžaduje read/write/execute pro majitele souboru read/execute pro skupiny a všechny ostatní uživatele (tedy 755). Práva můžete jednoduše změnit příkazem:

chmod 755 (file-name)

Pokud chyba 500 nezmizí, můžete ještě zkusit změnit práva na “chmod 777”, ALE jen pro testovací účely. Pokud chyba zmizí, je potřeba skript upravit, tak aby ho nemohl upravovat každý uživatel.

!!!Nezapomeňte pak práva 777 hned změnit!!!

VPS Centrum

Vyzkoušejte zdarma naši aplikaci pro správu serveru a domén. Budete si připadat jako zkušený administrátor.

Prověřte skripty

Pokud váš web spoléhá na skripty (například Perl nebo CGI), tak existuje řada věcí, které se mohou pokazit. Nejprve zkontrolujte oprávnění souboru, viz výše a pak postupujte podle následujícího seznamu:

  • Jsou skripty na správném místě a správně pojmenované? Ověřte, že skripty nebyly přesunuty, odstraněny nebo změnili název.
  • Jsou cesty k souborům správné? Mnoho skriptů vyžaduje ke spuštění další soubory a programy. Například, pokud máte skript Perl, začne to cestou k Perlu. Pomocí příkazu “which” můžete najít cestu k Perlu (nebo jinému programovacímu jazyku):which perl”
  • Mají skripty oprávnění ke spuštění ve složce, kde jsou umístěné? Možná budete chtít vytvořit jednoduchý testovací skript, kterým to zkontrolujete.
  • Ujistěte se, že váš testovací skript je ve stejném jazyce, jako ten, který opravujete a že používá stejnou příponu souboru.
  • Byl skript nedávno upraven v textovém editoru, jako je Microsoft Word nebo Wordpad? Programy CGI a další skripty by měly být upraveny pouze pomocí textového editoru, jako je Poznámkový blok nebo BBEdit pro Mac.
  • Timeout Error: pokud vaše skripty používají nebo volají externí sítě či zdroje, tak se může stát, že nebudou dostupné. Může to být přetížením sítě nebo je problém na třetí straně. Prověřte tedy, že je všechno v pořádku i u “externích dodavatelů”.

Jak chybu 500 opravit ve WordPressu?

Samozřejmě vám pomohou i všechny triky napsané výše, ale WordPress má svá specifika. Pojďme se na ně podívat.

Špatně nakonfigurovaný .htaccess (nejen pro WP)

Nejčastějším důvodem chyby 500 u WordPressu je způsobena právě souborem .htaccess. To je zkratka, kde webserver zkontroluje, jestli se u webu nachází “prioritní” pravidla. Nejčastěji pravidla přidávají pluginy, aniž byste to tušili.

Rychlá pomůcka, jak zjistit problém je jednoduchá. Stačí soubor z .htaccess přejmenovat na .htaccess_test, pak ho bude webserver ignorovat a zobrazí rovnou stránku a vy uvidíte, jestli to pomohlo. Jestli chyba zmizí, tak je potřeba pátrat, co problém způsobuje. Jak jsem zmínil na začátku: Pravidla přidávají často pluginy. Pokud jste nainstalovali nový, tak doporučujeme prověřit, co a jak vlastně dělá.

Další možnost je vytvořit kompletně nový .htaccess a přidat do něj oficiální řádky z WordPress.org. Pokud tam máte ale různá pravidla z pluginů, tak pravděpodobně pluginy nebudou fungovat správně.

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

PHP limity a nastavení

Všichni víme, že WordPress není zrovna šetrný k serverovým prostředkům. Občas se stane, že skript vyčerpá limit paměti, který mu byl v souboru PHP.ini přidělený. Pokud do něj máte přístup, stačí najít řádek memory_limit a navýšit jej.

Většina českých webhostingů nedovoluje nastavení měnit. Důvod je jednoduchý: snaží se dávat velký počet zákazníků na jeden fyzický server. Naše webhostingové parametry jsou více než příjemné. U nejmenšího tarifu “Lite” 256 MB a u tarifů “Profi” či “WordPress” dokonce dohodou.

Na našich virtuálních serverech (VPS) si samozřejmě můžete PHP.ini navýšit dle libosti.

Co problém způsobuje?

Může se to stát při instalaci nové WordPress šablony nebo importování demo obsahu, při kterém se PHP opravdu zapotí.

Dalším častým problémem je špatně naprogramovaný plugin nebo divná funkce šablony. Stačí zjistit, jestli plugin nebo šablona prošla aktualizací a co se přesně změnilo. Můžete to vykomunikovat s tvůrci, kteří budou mít zájem problém vyřešit.

Deaktivace WP pluginů

Stále se zobrazuje chyba 500? Pak musíte přejít k radikálnějššímu řešení. Pokud je chyba v pluginu, tak tímto způsobem na to přijdete. Deaktivaci všech pluginů zvládnete i bez přihlášení do administrace. Nejpohodlnější způsob je po připojení na FTP.

Stačí přejmenovat složku /wp-content/plugins na */pluginstest

Pokud chyba 500 zmizela, našli jste jádro problému. Teď jenom zjistit, který plugin má chybu na svědomí.

  1. Přejmenujte složku na původní znění a začněte měnit pouze názvy jednotlivých pluginů, dokud toho uličníka neobjevíte.
  2. Podobně to můžete provést i z databáze po připojení na PhpMyAdmin, ale FTP způsob je mnohem přehlednější.

Přeinstalování WP jádra

Pokud se nic z výše uvedeného nepovedlo, tak poslední možnost je přeinstalovat jádro WordPressu. Postup je jednoduchý a rychlý. Stáhněte si úplně novou instalaci WordPressu, nejlépe tu, kterou používáte. Následně stačí .zip soubor rozbalit a zdrojové soubory složek, /wp-admin a /wp-includes překopírovat na hosting či server do stejnojmenných složek.

Tím jste zvládli přepsat jádro WordPressu. Pomohlo to? Super!

Ne? Tak napište na naši podporu, ať vás můžeme aspoň nasměrovat a pomoct vám při hledání řešení.

Jak hlídat WordPress?

Maxiorel.cz napsal skvělý článek o nástroji jménem Tracy, který je přímo pro WordPress. Takže pokud to myslíte vážně, doporučujeme článek přečíst. Jedná se o jednoduchou komponentu oblíbeného frameworku Nette, která pomůže zobrazovat nejrůznější informace o webové aplikaci.

Jak na podchytávání 500 chyb?

Abyste chybu opravili, musíte o ní nejprve vědět. Každý správný vývojář by měl znát, jak “svoje chyby” podchytit, jen tak je následně dokáže ke spokojenosti klienta vyřešit. Proto doporučujeme nastavit si reporting chyb přímo na e-mail.

Kde kontrolovat logy?

Často stačí dva logy. Pro PHP a Apache či jiný webserver, který používáte.

Apache2

Na našich serverech najdete logy ve složce “/var/log/apache2/error.log” nebo “/var/log/apache2/název-webu/error.log” (v konkrétním webu). Pokud si netykáte s příkazovou řádkou, opět doporučuji oblíbený prográmek WinSCP, kterým se na SSH jednoduše přihlásíte a můžete si logy pohodlně prohledat.

Doporučujeme následně v editoru použít klávesovou zkratku CTRL + F a vyhledat “500

P​HP

Logy pro PHP najdete ve složce “/var/log/php7.0-fpm.log” záleží, jakou verzi zrovna web využívá a podle toho budete hledat. Doporučujeme využít postup popsaný výše a podle vypsané chyby se zařídit. Chybu si napsat do googlu a někdo na stackoverflow.com už řešení určitě našel.

Seznamte se s Tracy

Užitečná knihovna jménem Tracy, která by neměla chybět v repertoáru žádného PHP programátora.

Tracy pomůže:

  • rychle odhalit a opravit chyby (nejen 500 🙂
  • logovat chyby
  • jak vypisovat proměnné
  • měřit čas a paměťové nároky
  • pošle e-mail o chybě

Knihovna Vám určitě zachrání pár vlasů na hlavě. To oceníte v pozdějším věku. 🙂

Jak správně informovat uživatele a přidat vlastní chybovou stránku?

Poslední části dnešního článků se podíváme, jak správně informovat návštěvníka webu nejen o chybě 500.

Je dobré návštěvníka informovat o tom co se zrovna děje. Jak jsme si dnes vysvětlili, tak zrovna chyba 500 není chyba uživatele a měl by o tom vědět. Stačí si připravit hezkou grafickou stránku, jako máme např. my a jen se omluvit za vzniklé potíže s odkazem na domovskou stránku.  Upozornit, že chyba není na jeho straně a nějaký kontakt, na kterém může návštěvník na chybu upozornit.

Jsou dva způsoby, jak svojí vlastní chybovou stránku přidat.

.HTACCESS

Nejdříve musíte vlastní chybové stránky nahrát do root složky /www

Následně do .htaccessu přidejte tento řádek:

ErrorDocument 500 /500.html

Pro každý dokument je třeba jeden řádek. Doporučujeme ale nastavení dělat přes hlavní konfigurační soubor.

Konfigurační soubor web serveru

V našem případě se jedná o Apache2 a díky našemu úžasnému VPS Centru změnu provedete velice snadno. Stačí se přihlásit do administrace a v sekci Nastavení najít konfigurační soubor Apache2 a vložit tento řádek. Ve VPS centru tento soubor ale naleznete 2x. První je u nastavení domény. Ten platí pro doménu. Pak je ještě jeden, který je u nastavení serveru. Ten je templatem pro nové domény.

# #####only vas-hosting.cz.cz and www.vas-hosting.cz ####

DocumentRoot /www/hosting/vas-hosting.cz/www
ServerName vas-hosting.cz
ServerAlias www.vas-hosting.cz
ServerAlias www.vas-hosting.cz.xxx00.vas-server.cz vas-hosting.cz.xxx00.vas-server.cz
ErrorDocument 500 /homemade_50x.html
Use vas-hosting.cz

Poté stačí webserver restartovat. To také zvládnete hned z našeho VPS Centra a je hotovo. Nic těžkého. 🙂

Na závěr se může inspirovat se dalšími příklady chybových stránek.

Zdroje:
https://www.ionos.com/community/server-cloud-infrastructure/apache/how-to-fix-http-error-code-500-internal-server-error/
https://www.wplama.cz/co-zpusobuje-internal-server-error/
https://uicookies.com/500-error-page-templates/
https://dribbble.com/shots/1777469-500-Malfunction
https://cdn.sketchrepo.com/images/2x/sketch-error-pages-k5.png
https://cz.pinterest.com/pin/442549100874786819/?lp=true

Zůstaňte s námi v kontaktu

Jednou za měsíc posíláme souhrn novinek. Nemusíte se bát, spamovat vás nebudeme a odhlásit se můžete kdykoliv...

Karel Dytrych
Tým Váš Hosting
Vyzkoušejte náš trial na týden zdarma

Garance 14denní záruky vrácení peněz

Vyzkoušejte server na týden zdarma

Vyzkoušet server