Chyba 500 v PrestaShopu nebo prázdná stránka: co dělat v prvních 15 minutách
Když PrestaShop ukáže chybu 500 nebo prázdnou stránku, nejdřív zkontrolujte, zda se týká celého e-shopu, nebo jen jedné stránky. Pak zapněte debug mode nebo otevřete protokol chyb, abyste viděli skutečnou hlášku. Obvyklé příčiny jsou modul po aktualizaci, změna verze PHP a limit paměti serveru. V nouzi vypněte modul přejmenováním jeho složky.
Autor: Tým TellMyShop. Průvodce pro majitele obchodů na PrestaShopu: příčina, ruční oprava a stejná práce v rozhovoru v chatu.
Naposledy aktualizováno: · 4 min čtení
Krok nula: co přesně přestalo fungovat?
Než cokoli změníte, zapište si tři věci. Rozhodují o tom, zda to opravíte sami za čtvrt hodiny, nebo budete potřebovat pomoc.
| Otázka | Pokud ano | Pravděpodobná příčina |
|---|---|---|
| Nefunguje celý e-shop i administrace? | chyba při startu PrestaShopu | PHP, paměť, poškozený soubor, modul načítaný všude |
| Nefunguje e-shop, ale administrace ano? | chyba v šabloně nebo modulu na webu | nedávno změněný modul, šablona, override |
| Nefunguje jedna stránka, například košík nebo stránka produktu? | chyba v modulu napojeném na tuto stránku | modul plateb, dopravy nebo stránky produktu |
| Změnilo se něco za posledních 24 hodin? | to je skoro vždy příčina | aktualizace modulu, PHP nebo šablony, migrace |
Nejdůležitější je poslední řádek. Chyba 500, která se objevila hodinu po aktualizaci modulu, se obvykle ukáže jako vina tohoto modulu. Začněte vrácením poslední změny, než se začnete dívat jinam.
Jak zobrazit skutečnou chybovou hlášku
Chyba 500 sama o sobě nic neříká. Skutečnou hlášku, s názvem souboru a modulu, ukazují dvě místa.
- Debug mode. Když administrace funguje, zapnete ho v Rozšířené parametry > Výkon. Když nefunguje, změníte v souboru
config/defines.inc.phphodnotu_PS_MODE_DEV_natrue. Oba způsoby i bezpečné vypnutí popisujeme v článku o debug mode v PrestaShopu. Krok za krokem to ukazuje i LH.pl (polsky). - Protokol chyb serveru. V panelu hostingu, obvykle jako „error log“ nebo „PHP logy“. Ukazuje chyby, i když na ostrém e-shopu nechcete zapínat ladění.
- Záznamy PrestaShopu. Rozšířené parametry > Záznamy obsahují chyby, které PrestaShop stihl zaznamenat, s daty. Hodí se, když chyba postihuje jen část e-shopu.
Po diagnostice debug mode vypněte. Ukazuje technické podrobnosti každému návštěvníkovi.
Nejčastější příčiny a co s nimi
Modul po aktualizaci. Hláška ukazuje na soubor ve složce modules/nazev_modulu. Vypněte modul v administraci, a pokud administrace nefunguje, přejmenujte jeho složku přes FTP. Pak chybu nahlaste autorovi modulu s textem hlášky.
Verze PHP. Hosting změnil PHP, nebo jste ho změnili sami v panelu hostingu. Starší moduly na novějším PHP nefungují a PrestaShop 8 a 9 mají vlastní požadavky. Zkontrolujte systémové požadavky PrestaShopu a vraťte se k předchozí verzi PHP, pokud se chyba objevila hned po změně.
Paměť a disk. Hláška o „Allowed memory size“, nebo žádné volné místo na disku. To je věc hostingu: zvýšení limitu paměti PHP nebo uvolnění místa.
Overridy a mezipaměť. Po odinstalaci modulu někdy zůstane soubor overridu, který odkazuje na kód, který už neexistuje. Pomůže vymazat obsah var/cache a zkontrolovat složku override.
Poškozené soubory nebo infekce. Když se nic nezměnilo a v souborech se objevily neznámé kusy kódu, může jít o útok. Pskrk popisuje takový případ (polsky). Pak potřebujete zálohu a specialistu, ne opravy na vlastní pěst. Širší seznam závad sestavil Zenbox (polsky).
Kdy chat pomůže a kdy ne
Když celý PrestaShop neodpovídá, váš chat (Claude nebo ChatGPT) pomoci nemůže, protože modul TellMyShop běží uvnitř e-shopu a spadne s ním. Pak vám zbývá plán výše, nebo vývojář.
Chat se hodí, když e-shop funguje, ale část má chybu, a pro prevenci. V bezplatné verzi TellMyShop Free chat přečte protokol chyb za zvolené období, technickou kontrolu e-shopu a seznam modulů a pak hlášky vysvětlí srozumitelně.
Vy: Od rána zákazníci píšou, že se jim neotevře košík. Včera jsem aktualizoval dva moduly. Zkontroluj, co se děje.
Váš chat: Protokol za posledních 24 hodin má 46 záznamů stejné chyby, první včera ve 21:14, pár minut po aktualizaci modulu dopravy.
Chyba pochází ze souboru tohoto modulu a nastává při otevření košíku. Druhý aktualizovaný modul chyby nemá.
Nejbezpečnější krok: vypnout modul dopravy, dokud autor nevydá opravu. Zákazníci přijdou o tento způsob dopravy, ale košík bude zase fungovat.
Vypnutí modulu přes chat funguje v TellMyShop Pro se zapnutým přepínačem Moduly v panelu modulu. Přepínač platí 24 hodin a vyžaduje zálohu databáze ze stejného dne. Vypnutý modul si ponechá svá data, takže ho znovu zapnete jedním požadavkem. U modulů plateb a dopravy vás chat upozorní, o co zákazníci přijdou. Ukázkové požadavky: chybové hlášky po aktualizaci modulu, oprava chybové stránky po aktualizaci a vypnutí modulu, který rozbíjí košík.
Jak snížit riziko další chyby 500
- Před každou aktualizací modulu nebo PHP zálohujte soubory a databázi.
- Aktualizujte jeden modul po druhém a po každém zkontrolujte e-shop.
- Aktualizace dělejte ráno v pracovní den, ne v pátek večer.
- Jednou týdně projděte protokol chyb, než drobná chyba naroste.
- Mějte testovací kopii e-shopu na zkoušení větších změn.
Pokud e-shop funguje, ale vaše změny se neprojevují, je to jiný problém: změny se v PrestaShopu neprojevují.
Otázky a odpovědi
Co znamená chyba 500 v PrestaShopu?
Že server narazil na chybu v kódu e-shopu a nedokázal stránku sestavit. Hláška sama neříká, co se stalo. Příčinu ukáže až debug mode nebo protokol chyb serveru. Obvyklým viníkem je modul po aktualizaci, změna verze PHP, nebo nedostatek místa či paměti na serveru.
Jak vypnu modul, když administrace PrestaShopu nefunguje?
Přes FTP nebo správce souborů hostingu přejmenujte složku modulu ve složce modules, například přidáním _off na konec. PrestaShop modul nenajde a přeskočí ho. Po opravě název vraťte. Je to nouzový východ, takže si zapište, co jste změnili, abyste to později mohli vrátit.
Může být chyba 500 vinou hostingu?
Ano. Překročený limit paměti PHP, plný disk, vypnuté rozšíření PHP nebo změna verze PHP hostingem dají stejnou chybu 500. Pokud protokol ukazuje hlášku o paměti nebo chybějícím rozšíření, je to věc hostingu, ne autora modulu.
Pomůže chat, když nefunguje celý e-shop?
Ne, protože modul TellMyShop běží uvnitř e-shopu. Když PrestaShop vůbec neodpovídá, nefunguje ani spojení s chatem. Chat pomůže, když chyba postihne část e-shopu, například jednu stránku nebo košík, a s prevencí: s kontrolou protokolu chyb po každé aktualizaci.
PrestaShop je registrovaná ochranná známka společnosti PrestaShop SA. Claude je ochranná známka společnosti Anthropic PBC. ChatGPT a OpenAI jsou ochranné známky společnosti OpenAI. TellMyShop s těmito společnostmi není propojen.