Błąd 500 w PrestaShop („Internal Server Error", „Oops! An error occurred", „The server returned a 500 Internal Server Error") to druga po białej stronie najczęstsza awaria sklepu. W przeciwieństwie do białej strony błąd 500 zostawia ślad w logach serwera praktycznie zawsze — dlatego diagnoza jest szybsza. Najczęstsze przyczyny to limit pamięci PHP, uszkodzony .htaccess, uprawnienia plików i niekompatybilny moduł. Naprawa u specjalisty: 200–600 zł netto, diagnostyka z raportem 500–1 500 zł netto.
Najważniejsze: Błąd 500 w PrestaShop diagnozujesz w kolejności: 1) logi serwera (nginx/apache) i PHP — tam jest konkretny komunikat, 2) limit pamięci PHP (
Allowed memory size exhausted), 3).htaccess— regeneruj lub wyłącz na test, 4) uprawnienia plików (katalogi 755, pliki 644), 5) tryb debug na kopii dla pełnego komunikatu, 6) izolacja modułu przezps_module. Błąd 500 dotyczy najczęściej jednej strony (np. tylko koszyka) — to zawęża winowajcę do konkretnego modułu.
Czym różni się błąd 500 od białej strony
Biała strona to wyłączone wyświetlanie błędów — nie wiesz, co się stało, dopóki nie włączysz debug. Błąd 500 to jawny komunikat serwera, że przetwarzanie żądania się nie powiodło. W PrestaShop 1.7/8/9 zobaczysz jeden z komunikatów:
- „Oops! An error occurred." — standardowy ekran błędów PrestaShop,
- „The server returned a "500 Internal Server Error". Something is broken." — błąd Symfony (PrestaShop 1.7+/8/9),
- pusty ekran z kodem 500 w narzędziach deweloperskich przeglądarki.
Niezależnie od komunikatu procedura jest ta sama: logi → przyczyny → naprawa. Jeśli widzisz pusty ekran bez komunikatu, przejdź procedurę z artykułu biała strona PrestaShop.
- ## Krok 1: Logi serwera i PHP
Zacznij od logów — błąd 500 zawsze zostawia wpis
-
logi nginx/apache — w panelu hostingu, katalog
logs/(np.error.log), -
logi PHP —
error_logw katalogu sklepu lub~/logs/php_errorlog, -
logi PrestaShop —
var/logs/prod.logivar/logs/dev.log. -
Szukaj:
PHP Fatal error,Allowed memory size,Cannot redeclare,Call to undefined method,SQLSTATE. Ostatni wpis przed błędem to zwykle sprawca. Jak czytać logi — logi PrestaShop. -
## Krok 2: Limit pamięci PHP
Najczęstsza pojedyncza przyczyna błędu 500 w PrestaShop
- - komunikat:
Allowed memory size of 134217728 bytes exhausted (tried to allocate ...), - - rozwiązanie: podnieś
memory_limitdo 256M–512M (.user.ini, panel hostingu lubphp.ini), - po zmianie wyczyść cache i przetestuj stronę, która zwracała błąd.
PrestaShop 8/9 z rozbudowanym katalogiem i modułami potrzebuje realnie 256M+ na front i 512M na operacje administracyjne (importy, aktualizacje).
- ## Krok 3: .htaccess
Uszkodzony lub błędnie wygenerowany .htaccess zwraca 500 na całym sklepie
- zrób kopię
.htaccess, - tymczasowo zmień nazwę na
.htaccess.baki sprawdź sklep, - jeśli sklep wraca — wygeneruj nowy
.htaccess(panel → Parametry zaawansowane → Wydajność → przycisk generowania) albo odtwórz z czystej instalacji tej samej wersji, - sprawdź, czy hosting nie wymaga własnych reguł (np. PHP handler, HTTPS redirect) — porównaj z dokumentacją hostingu.
- ## Krok 4: Uprawnienia plików i katalogów
Po migracji hostingu lub rozpakowaniu backupu uprawnienia potrafią zablokować PHP
| Element | Uprawnienia |
|---|---|
| Katalogi | 755 |
| Pliki | 644 |
var/ i podkatalogi |
775 (zapisywalne) |
config/ |
tylko odczyt dla PHP |
-
Naprawa przez SSH:
find . -type d -exec chmod 755 {} \;,find . -type f -exec chmod 644 {} \;, następniechmod -R 775 var/. -
## Krok 5: Tryb debug i pełny komunikat
Jeśli logi są puste albo niejednoznaczne, włącz tryb debug na kopii sklepu: w config/defines.inc.php ustaw define('_PS_MODE_DEV_', true);. Zamiast „Oops! An error occurred" zobaczysz pełny stack trace: plik, linię i klasę. To najszybsza droga do przyczyny — szczegóły w tryb debug w PrestaShop.
Uwaga: Debug na produkcji odsłania ścieżki serwera, zapytania SQL i konfigurację przed klientami. Włączaj wyłącznie na kopii, a po diagnozie natychmiast wyłącz.
- ## Krok 6: Izolacja modułu
Gdy błąd dotyczy jednej konkretnej strony (koszyk, produkt, checkout), winowajcą jest zwykle moduł podpięty do hooka tej strony:
- sprawdź, która strona zwraca 500 — to zawęża listę modułów,
- wyłączaj moduły powiązane z tą funkcją (np. przy koszyku — moduły koszyka i rabatów),
- gdy panel działa, użyj panelu; gdy nie —
UPDATE ps_module SET active = 0 WHERE name = 'nazwa_modulu';, - ostatni moduł wyłączony przed zniknięciem błędu jest sprawcą — zaktualizuj go lub zgłoś autorowi.
- Pełna procedura izolacji: konflikt modułów w PrestaShop.
Błąd 500 przy logowaniu do panelu
Szczególny przypadek: front działa, ale /admin (własny URL panelu) zwraca 500. Najczęstsze przyczyny
- wyczerpany limit pamięci — panel PrestaShop zużywa więcej pamięci niż front; podnieś limit,
- uszkodzone cache po aktualizacji — usuń zawartość
var/cache, - niekompatybilny moduł administracyjny — wyłącz ostatnio instalowany moduł przez bazę,
- błąd w override klasy rdzenia — sprawdź
override/pod kątem klas modyfikowanych przez moduły.
W PrestaShop 8/9 do logowania do panelu służy komenda php bin/console — możesz też sprawdzić logi Symfony w var/logs/.
Kiedy wezwać specjalistę
Pomoc ma sens, gdy logi wskazują na rdzeń lub bazę danych, błąd wraca po każdej naprawie albo sklep stoi dłużej niż godzinę. Zanim to nastąpi, możesz wykonać sam: backup, odczyt logów, podniesienie limitu pamięci i regenerację .htaccess — to pokrywa większość przypadków. Stała pomoc techniczna w pakietach: pomoc techniczna PrestaShop.
Najczęściej zadawane pytania
Gdzie znajdę szczegóły błędu 500 w PrestaShop?
W logach serwera (nginx/apache) i PHP (error_log) oraz w var/logs/. Błąd 500 zawsze zostawia wpis — szukaj ostatniego PHP Fatal error przed momentem awarii. Pełny komunikat z plikiem i linią pokaże też tryb debug na kopii sklepu.
Błąd 500 tylko na jednej stronie sklepu — co to znaczy?
- To dobra wiadomość: błąd na jednej stronie (np. tylko koszyk) zawęża przyczynę do modułu podpiętego do tej funkcji. Wyłącz moduły powiązane z tą stroną po kolei — ostatni wyłączony przed zniknięciem błędu jest sprawcą.
Czy błąd 500 może być spowodowany przez hosting?
Tak — limit pamięci PHP, wyłączone rozszerzenia (np. intl, zip) albo zbyt restrykcyjne reguły mod_security potrafią wywołać 500 na całym sklepie. Jeśli logi hostingu pokazują blokady WAF, poproś o wyłączenie reguły dla panelu administracyjnego.
Błąd 500 po aktualizacji — co robić w pierwszej kolejności?
Sprawdź var/logs/ i wyłącz ostatnio aktualizowany moduł. Jeśli błąd wystąpił po aktualizacji rdzenia, wykonaj procedurę z problemy po aktualizacji PrestaShop — obejmuje przywrócenie kopii i testy na stagingu.
Źródła i narzędzia
- PrestaShop DevDocs — troubleshooting
- PrestaShop — artykuł o błędzie HTTP 500
- PHP — obsługa błędów i logi
- nginx — dokumentacja
👉 Sklep zwraca błąd 500? Przekaż logi lub dostęp przez bezpieczny kanał — formularz kontaktowy lub kontakt@informatix.com.pl. Zobacz też pełny przegląd awarii: pomoc PrestaShop.
📖 Zobacz też: biała strona w PrestaShop, tryb debug i konflikt modułów.