PrestaShop błąd 500 albo biała strona: co zrobić w pierwszych 15 minutach

Gdy PrestaShop pokazuje błąd 500 albo białą stronę, najpierw sprawdź, czy dotyczy całego sklepu, czy jednej strony. Potem włącz tryb debugowania albo otwórz dziennik błędów, żeby zobaczyć prawdziwy komunikat. Najczęstsze przyczyny to moduł po aktualizacji, zmiana wersji PHP i limit pamięci serwera. Moduł wyłączysz awaryjnie, zmieniając nazwę jego katalogu.

Autor: Sani. Sani buduje moduł TellMyShop i na co dzień pracuje z zapleczem sklepów PrestaShop.
Aktualizacja: · 4 min czytania

Krok zero: co dokładnie przestało działać?

Zanim cokolwiek zmienisz, zanotuj trzy rzeczy. To one decydują, czy naprawisz to sam w kwadrans, czy potrzebujesz pomocy.

PytanieJeśli takPrawdopodobna przyczyna
Nie działa cały sklep i panel?błąd przy starcie PrestaShopPHP, pamięć, uszkodzony plik, moduł ładowany wszędzie
Nie działa sklep, panel działa?błąd w motywie albo module od strony klientaostatnio zmieniony moduł, motyw, nadpisanie
Nie działa jedna strona, np. koszyk albo karta produktu?błąd w module podpiętym pod tę stronęmoduł płatności, dostawy, moduł karty produktu
Coś zmieniało się w ostatnich 24 godzinach?prawie zawsze to jest przyczynaaktualizacja modułu, PHP, motywu, przenosiny

Ostatni wiersz jest najważniejszy. Błąd 500, który pojawił się godzinę po aktualizacji modułu, najczęściej okazuje się winą właśnie tego modułu. Zacznij od cofnięcia ostatniej zmiany, zanim zaczniesz szukać gdzie indziej.

Jak zobaczyć prawdziwy komunikat błędu?

Sam błąd 500 nic nie mówi. Prawdziwy komunikat, z nazwą pliku i modułu, pokazują dwa miejsca.

  1. Tryb debugowania. Gdy panel działa, włączysz go w Zaawansowane > Wydajność. Gdy panel nie działa, w pliku config/defines.inc.php zmieniasz _PS_MODE_DEV_ na true. Oba sposoby i bezpieczne wyłączenie opisujemy w tekście o trybie debugowania PrestaShop. Krok po kroku pokazuje to też LH.pl.
  2. Dziennik błędów serwera. W panelu hostingu, zwykle jako „error log” albo „logi PHP”. Pokazuje błędy także wtedy, gdy nie chcesz włączać debugowania na działającym sklepie.
  3. Dziennik PrestaShop. W Zaawansowane > Logi są błędy, które PrestaShop zdążył zapisać, z datą. Przydaje się, gdy błąd dotyczy tylko części sklepu.

Po diagnozie wyłącz tryb debugowania. Pokazuje on szczegóły techniczne każdemu odwiedzającemu.

Najczęstsze przyczyny i co z nimi zrobić

Moduł po aktualizacji. Komunikat wskazuje plik w katalogu modules/nazwa_modulu. Wyłącz moduł w panelu, a jeśli panel nie działa, zmień nazwę jego katalogu przez FTP. Potem zgłoś błąd autorowi modułu z treścią komunikatu.

Wersja PHP. Hosting zmienił PHP albo zmieniłeś ją sam w panelu hostingu. Starsze moduły nie działają na nowszym PHP, a PrestaShop 8 i 9 mają swoje wymagania. Sprawdź wymagania systemowe PrestaShop i wróć do poprzedniej wersji PHP, jeśli błąd pojawił się zaraz po zmianie.

Pamięć i dysk. Komunikat o „Allowed memory size” albo brak miejsca na dysku. To sprawa dla hostingu: podniesienie limitu pamięci PHP albo zwolnienie miejsca.

Nadpisania i pamięć podręczna. Po odinstalowaniu modułu zostaje czasem plik nadpisania, który odwołuje się do nieistniejącego kodu. Pomaga usunięcie zawartości var/cache i sprawdzenie katalogu override.

Uszkodzone pliki albo infekcja. Gdy nic się nie zmieniało, a w plikach pojawiły się nieznane fragmenty kodu, to może być atak. Pskrk opisuje taki przypadek. Wtedy potrzebna jest kopia zapasowa i specjalista, nie samodzielne poprawki. Szerszą listę usterek zebrał Zenbox.

Kiedy Claude pomoże, a kiedy nie?

Gdy cały PrestaShop nie odpowiada, Claude nie pomoże, bo moduł TellMyShop działa wewnątrz sklepu i nie działa razem z nim. Wtedy zostaje plan opisany wyżej albo developer.

Claude przydaje się, gdy sklep działa, a błąd dotyczy jego części, i przy zapobieganiu. W darmowym Audycie Claude czyta dziennik błędów z wybranego okresu, przegląd techniczny sklepu i listę modułów, a potem tłumaczy komunikaty na zwykły język.

Ty

Od rana klienci piszą, że koszyk się nie otwiera. Wczoraj aktualizowałem dwa moduły. Sprawdź, co się dzieje.

Claude

W dzienniku z ostatnich 24 godzin jest 46 wpisów tego samego błędu, pierwszy wczoraj o 21:14, kilka minut po aktualizacji modułu dostawy.

Błąd pochodzi z pliku tego modułu i występuje przy otwieraniu koszyka. Drugi zaktualizowany moduł nie ma żadnych błędów.

Najbezpieczniej: wyłączyć moduł dostawy do czasu poprawki od autora. Klienci stracą tę metodę dostawy, ale koszyk zacznie działać.

Ilustracja: produkty, liczby i odpowiedzi są przykładowe.

Wyłączenie modułu przez Claude działa w wersji płatnej, w bloku Moduły, przez połączenie serwisowe z zaufanych adresów IP. Moduł wyłączony zostaje z danymi, więc włączysz go z powrotem jednym poleceniem. Przy modułach płatności i dostawy Claude ostrzega, co stracą klienci. Przykłady próśb: komunikaty błędów po aktualizacji modułu, naprawa strony błędu po aktualizacji i wyłączenie modułu, który psuje koszyk.

Jak zmniejszyć ryzyko następnego błędu 500?

  • Przed każdą aktualizacją modułu albo PHP rób kopię zapasową plików i bazy.
  • Aktualizuj jeden moduł naraz i sprawdzaj sklep po każdym.
  • Aktualizacje rób rano w dzień roboczy, nie w piątek wieczorem.
  • Raz w tygodniu przeglądaj dziennik błędów, zanim drobny błąd urośnie.
  • Trzymaj kopię testową sklepu do sprawdzania większych zmian.

Jeśli sklep działa, ale zmiany nie są widoczne, to inny problem: PrestaShop nie widać zmian.

Pytania i odpowiedzi

Co oznacza błąd 500 w PrestaShop?

Że serwer napotkał błąd w kodzie sklepu i nie potrafił zbudować strony. Sam komunikat nie mówi, co się stało. Przyczynę pokazuje dopiero tryb debugowania albo dziennik błędów serwera. Najczęściej winny jest moduł po aktualizacji, zmiana wersji PHP albo brak miejsca lub pamięci na serwerze.

Jak wyłączyć moduł, gdy panel PrestaShop nie działa?

Przez FTP albo menedżer plików hostingu zmień nazwę katalogu modułu w katalogu modules, na przykład dopisując na końcu _off. PrestaShop nie znajdzie modułu i go pominie. Po naprawie przywróć nazwę. To awaryjne wyjście, więc zanotuj, co zmieniłeś, żeby potem to odwrócić.

Czy błąd 500 może być winą hostingu?

Tak. Przekroczony limit pamięci PHP, pełny dysk, wyłączone rozszerzenie PHP albo zmiana wersji PHP przez hosting dają ten sam błąd 500. Jeśli w dzienniku widzisz komunikat o pamięci albo brakującym rozszerzeniu, sprawa jest dla hostingu, nie dla autora modułu.

Czy Claude pomoże, gdy cały sklep nie działa?

Nie, bo moduł TellMyShop działa wewnątrz sklepu. Gdy PrestaShop nie odpowiada wcale, połączenie z Claude też nie działa. Claude pomaga, gdy błąd dotyczy części sklepu, na przykład jednej strony albo koszyka, i przy zapobieganiu: przegląd dziennika błędów po każdej aktualizacji.

PrestaShop jest zastrzeżonym znakiem towarowym PrestaShop SA. Claude jest znakiem towarowym Anthropic. TellMyShop nie jest powiązany z żadną z tych firm.

Moduł startuje 29 października

Zapisz się na listę. Cenę Founders, 599 zł netto z aktualizacjami na zawsze, dostaniesz 72 godziny przed innymi.

Kilka wiadomości przed startem. Wypiszesz się jednym kliknięciem. Polityka prywatności

Przeczytaj też