Biała strona w PrestaShop najczęściej oznacza krytyczny błąd PHP, konflikt modułu, problem z motywem albo brak zasobów serwera, a nie zniknięcie sklepu. Pierwszym krokiem do naprawy jest włączenie trybu debugowania, bo dopiero wówczas PrestaShop pokaże komunikat błędu. W tym poradniku pokażę Ci najczęstsze przyczyny wyświetlania białej strony w PrestaSop oraz skuteczne sposoby na ich rozwiązanie. Krok po kroku.

Z tego artykułu dowiesz się:

Czym jest „biała strona” (White Screen of Death) w PrestaShop?

Biała strona w PrestaShopjest frustrującym doświadczeniem dla właściciela sklepu internetowego. Zamiast Twojej witryny – użytkownik widzi tylko pusty ekran. Zero komunikatu, zero wskazówek. Na szczęście w większości przypadków problem da się szybko zidentyfikować i naprawić.

W przeciwieństwie do sławnego Blue Screen of Death, który jest protoplastą całego szanowanego rodu Screen’ów, White Screen of Death nie wyświetla nam żadnych błędów. Sytuacja więc może wydawać się beznadziejna. Nasza strona www przestaje się wyświetlać użytkownikom w internecie w danej chwili. To z kolei generuje duże koszta, w zależności od biznesu.

Szczególnie newralgiczną sytuacją jest problem ze sklepem internetowym. To często rozbudowane serwisy, których stworzenie bądź naprawa jest znacznie droższa niż skonfigurowanie od nowa prostej strony wizytówki. Ta możne być stworzona od nowa w relatywnie krótkim czasie.

Tak jak wcześniej wspomniałem, na szczęście skrypt Prestashop daje nam kilka możliwości debugowania.

Od czego zacząć debug skryptu?

Debug skryptu zaczynamy od włączenia Trybu debugowania, który pozwoli nam na wyświetlenie w końcu jakiś błędów. Bez podstawowych informacji o tym co może być nie tak, nasza weryfikacja będzie jak błądzenie po omacku.

Dajmy na to, że mamy dostęp do zaplecza strony, czyli do Panelu konfiguracyjnego Prestashop, wóczas sprawa jest ułatwiona. Debug można włączyć bezpośrednio w Panelu. Wybierz w lewym menu Zaawansowane -> Wydajność -> Tryb debugowania -> Tryb debugowania na Tak -> Zapisz.

Można tutaj od razu również wyłączyć wszystkie nadpisywania (3) i wyczyścić pamięć podręczną (4).

Panel konfiguracyjny PrestaShop. Tryb debugowania
Panel konfiguracyjny PrestaShop. Tryb debugowania

Istnieje jednak opcja włączenia Trybu debugowania z poziomu plików serwisu, które znajdują się na dysku serwera. Należy zatem przejść do głównego katalogu naszej strony zbudowanej w Prestashop. Kolejno przejść do katalogu config i edycji pliku defines.inc.php, zjechać delikatnie na dół i tam w jednej z pierwszych linijek zamienić:

define('PS_MODE_DEV', false);
na
define('PS_MODE_DEV', true);

Możemy zapisać plik i spróbować zalogować się do panelu administracyjnego sklepu lub spróbować załadować stronę, na której pojawiał się White Screen. Teraz powinny pojawić się również komunikaty błędów, naprowadzające na konkretne elementy strony.

Z doświadczenia wiem, że samo włączenie trybu debugowania często pozwala na prawidłowe załadowanie się wyżej wspomnianego panelu administracyjnego. Wtedy najbardziej prawdopodobny powód występowania problemu znajdziemy w systemie Cache. To właśnie cache na tak zwanej produkcji jest inne niż to, które jest podawane w trybie debugu. Choć oczywiście nie zawsze jest to takie proste.

Sprawdź również PrestaShop z cyber_Boost – co to jest i dlaczego warto włączyć?

Co najczęściej powoduje błędy typu White Screen w Prestashop i jak je rozwiązać?

Biała strona może pojawić się z wielu powodów, ale w praktyce pewne scenariusze powtarzają się szczególnie często. Zazwyczaj problem wynika z nieprawidłowej aktualizacji modułu lub motywu, błędów w kodzie, brakujących plików na serwerze albo konfliktów między komponentami sklepu. Czasem wystarczy jedna drobna zmiana – zaktualizowany moduł, źle wgrany plik, nowa wersja PHP – i PrestaShop przestaje działać, nie zwracając żadnego komunikatu. Poniżej zebrałem najczęstsze przyczyny występowania tzw. White Screen of Death wraz z konkretnymi sposobami ich rozwiązania. Dzięki temu szybko ustalisz źródło błędu i przywrócisz sklep do działania.

1. Problem z modułem

Moduły to najczęstszy winowajca. Wystarczy błędna aktualizacja, konflikt między nimi lub źle napisany skrypt, aby sklep przestał działać.

Rozwiązanie:
Jeśli w komunikacie błędu znajdowała się ścieżka do katalogu modułu, można go wyłączyć. Zmieniając nazwę jego katalogu na koncie FTP (na dysku serwera). Ścieżka do pliku to:

modules/nazwa_modułu

Zmieniamy nazwę katalogu na przykład na:

modules/nazwa_modułu_old

Sprawdzamy czy to rozwiązało problem.

Czasami jednak nie otrzymamy informacji o danym module w komunikacie błędu. Wtedy należy podjąć inne kroki w celu ustalenia, który to z nich (jeśli to w ogóle moduł, ale czasami trzeba po prostu sprawdzać wszystko po kolei).

Co można zrobić, to wyłączyć wszystkie moduły, inne niż wbudowane. Następnie w zależności od tego czy mamy dostęp do Panelu Klienta, czy nie, robimy to w taki sposób:

  1. Jeśli panel administracyjny nie wyświetla białej strony, przechodzimy po zalogowaniu do niego do lewego menu. Wybieramy -> Zaawansowane -> Wydajność -> Zjeżdżamy na dół do sekcji Moduły -> kliknij w przycisk Wyłącz.

  2. Jeśli pojawia się biała strona lub nie ma dostępu do Panelu Klienta z innego powodu, możemy wyłączyć moduły z poziomu bazy danych. Przykładowo, po zalogowaniu do niej w narzędziu phpmyadmin. Po zalogowaniu do bazy przejdź do zakładki SQL, wpisz poniższą komendę i kliknij w przycisk Go/Uruchom:
UPDATE ps_module SET active = 0 WHERE name NOT LIKE 'ps_%';

Ta komenda jest odwracalna, wystarczy użyć tej samej komendy, zmieniając tylko wartość active na 1 (zamiast 0) i wykonując ją klikając w Go/Uruchom.

Ostatnią metodą, choć najbardziej czasochłonną, jest zmiana nazw katalogów dla wszystkich modułów na takie z końcówką _old, pojedynczo. Następnie sprawdzając czy strona zaczęła się normalnie ładować. Co ważne, jeśli zmiana nazwy katalogu nie rozwiązała problemu, należy nazwę zmienić ponownie na poprzednią, właściwą. Kolejno przejść do kolejnego modułu.

2. Błąd w motywie

Motyw (szablon) w PrestaShop jest kolejną z najczęstszych przyczyn pojawiania się białej strony. To właśnie on odpowiada za renderowanie frontu sklepu, układ sekcji, wygląd produktów i komunikację wielu modułów z interfejsem użytkownika. Jeśli w motywie pojawi się błąd, nawet drobny, jak brakujący nawias w pliku .tpl, PrestaShop potrafi całkowicie przestać działać i wyświetlić tylko pustą stronę. Problemy z motywem najczęściej pojawiają się po jego aktualizacji, ręcznej edycji plików albo instalacji niekompatybilnego modułu, który próbuje wstrzyknąć swój kod do szablonu.

Rozwiązanie

Jeśli błąd pojawił się po aktualizacji motywu, zalecane jest przywrócenie strony z backupu. Dlatego ważne, aby przed tego typu działaniami zawsze upewnić się, że backup plików i bazy danych jest zrobiony. Dla pewności, utwórz go jeszcze raz (zdywersyfikujesz posiadane kopie danego stanu witryny).

Jeśli nie posiadamy kopii zapasowej, albo z jakiegoś względu nie możemy jej przywrócić, z pomocą może znowu przyjść tryb debugowania. Ścieżki w błędach, które zaczną się pojawiać będą wyglądało następująco:

/themes/nazwa_motywu/templates/ 
/themes/nazwa_motywu/modules/

Gdy znamy już ścieżki do pliku, możemy te pliki wyszukać w internecie (Github, strona producenta motywu itd) i je nadpisać na serwerze.

Jeśli jednak strona nie zgłasza żadnych błędów i cały czas wyświetla białą stronę, możemy zweryfikować czy to problem z motywem zmieniając nazwę katalogu motywu w podobny sposób co poprzednio:

/themes/nazwa_motywu -> /themes/nazwa_motywu_old

Dzięki temu Prestashop nie będzie mógł znaleźć plików motywu i spróbuje załadować klasyczny motyw PS. To nie rozwiąże problemu, ale przynajmniej dowiemy się co powoduje problem, a to już coś.

Nadpisywania klas i kontrolerów (Overrides)

Override’y, czyli nadpisywania klas i kontrolerów, to jedna z najbardziej problematycznych i jednocześnie najmniej oczywistych funkcji PrestaShop. Umożliwiają one modułom modyfikowanie zachowania sklepu bez ingerencji w pliki źródłowe, co z pozoru wydaje się świetnym rozwiązaniem.

Problem pojawia się wtedy, gdy któryś z modułów wprowadzi do override błędny kod, funkcję niezgodną z wersją PrestaShop lub niekompatybilny fragment PHP. Wtedy system zamiast załadować oryginalną klasę, próbuje użyć wadliwej wersji i skutkuje to natychmiastową białą stroną. Jest to jedna z najczęstszych przyczyn nagłego wysypania się sklepu. Zwłaszcza po aktualizacjach modułów, zmianach PHP albo migracjach na nowy serwer.

Rozwiązanie

Tutaj można powalczyć o zweryfikowanie czy problem stanowią te funkcje, tymczasowo wyłączając (zmieniając nazwę) katalog override, który znajduje się w głównym katalogu strony sklepu.

Analogicznie do poprzednich przypadków, gdzie zmienialiśmy nazwy katalogów:

/override -> /override.old

Oczywiście to działanie może zostać odwrócone, gdy zmienimy nazwę katalogu na wcześniejszą.

Jeśli okazałoby się, że to te funkcje powodują błędy, można przywrócić tylko ten katalog z backupu, zamiast przywracania całej strony.

Podsumowanie

Biała strona w PrestaShop potrafi sparaliżować działanie sklepu i skutecznie utrudnić diagnozę problemu, bo nie podaje żadnego komunikatu błędu. Na szczęście w większości przypadków jej przyczyna okazuje się stosunkowo prosta do wykrycia. Szczególnie wtedy, gdy zaczniemy od prawidłowych kroków diagnostycznych. Włączenie trybu debugowania, sprawdzenie modułów, motywu oraz override’ów to trzy filary szybkiej i skutecznej analizy problemu. Każdy z tych elementów potrafi spowodować white screen. Czy to poprzez błędny kod, niekompatybilną aktualizację, uszkodzone pliki, czy konflikt wywołany przez zewnętrzny moduł.

Najważniejsze jest podejście krok po kroku. Najpierw debug, później zawężanie obszaru poszukiwań, wyłączanie elementów, które mogą być winne. Na końcu, przywracanie działania sklepu poprzez naprawę lub odtworzenie właściwych plików. Co istotne, większość z opisanych metod jest całkowicie odwracalna, dlatego można je stosować bez obawy o trwałe uszkodzenie sklepu. Dzięki temu możliwe jest szybkie ustalenie źródła problemu i przywrócenie sklepu do działania. I to nawet wtedy, gdy panel administracyjny nie działa lub dostęp do niego jest całkowicie zablokowany.

Biała strona w PrestaShop? – FAQ

Biała strona w PrestaShop najczęściej oznacza krytyczny błąd PHP, konflikt modułu, problem z motywem albo kłopot z zasobami serwera. To sygnał, że system napotkał błąd i nie potrafi go poprawnie wyświetlić

Najlepiej od włączenia trybu debugowania. Dzięki temu PrestaShop pokaże komunikat błędu, który wskaże źródło problemu. Tryb debug można uruchomić z poziomu panelu administracyjnego albo w pliku defines.inc.php, zmieniając wartość PS_MODE_DEV z false na true.

W wielu przypadkach jest to możliwe. Jeśli najpierw włączysz debugowanie i krok po kroku sprawdzisz moduły, motyw oraz overrides, często da się szybko namierzyć przyczynę i usunąć problem bez pełnego odtwarzania sklepu. Backup nadal jest ważny, zwłaszcza po aktualizacji.
>
Konrad Matus

Dodaj komentarz

Twój adres e-mail nie będzie opublikowany.

Szukasz dalej?