Naprawa PrestaShop – biała strona i inne problemy

Damian Ślimak | Ostatnia aktualizacja 16 listopada 2018

PrestaShop, tak samo jak inne systemy sklepowe open source, potrafi się czasami popsuć. Przyczyn tego może być naprawdę dużo – od niesprawdzonych modułów instalowanych w sklepie, przez magików, którzy coś tam naprawiali, a przy okazji popsuli inne rzeczy, aż do takich zjawisk jak aktualizacja oprogramowania na serwerze lub zmiana wersji php.

Zobacz, jak łatwo można zdiagnozować błędy

Typy błędów na sklepach PrestaShop

Ograniczenia serwera (mało pamięci RAM, czas wykonywania skryptu) i zła konfiguracja php to najtrudniejsze do naprawy błędy. W większości przypadków zalecana będzie zmiana serwera na inny – bardziej przyjazny do ustawienia własnej konfiguracji.

Błędy programistów (tak zwanych magików), którzy dopisują coś, co naprawia jeden problem, a tworzy kilka nowych, które ujawniają się po jakimś czasie.

  • internal server error (500)Jest to komunikat informujący, że coś poszło nie tak po stronie serwera i witryna nie może zostać wyświetlona. W PrestaShop wersji 1.6 częstym problemem na “gorszych” hostingach był błąd ilości wysyłanych tłumaczeń przez formularz (wystarczało zwiększyć wartość parametru php  max_input_vars).
  • HTTP 404 nie znalezionoBłąd ten często powstaje przez złą konfigurację pliku .htaccess, który jest odpowiedzialny za routing, czyli kierowanie po adresie URL do odpowiednich stron.
    Ostatnio bardzo często pojawia się w wyniku nieprawidłowo wdrożonego certyfikatu SSL na sklepie.

Te problemy, w zależności od hostingu, często kończą się tak zwana białą stroną prestashop. Na ekranie wyświetla nam się biały ekran i nic więcej.

Jak zdiagnozować przyczynę błędu ?

Sposób łatwy

Aby zbadać przyczynę tego błędu, musimy otworzyć logi apache i je poczytać. Najczęściej logi błędów można pobrać w  panelu administracyjnego serwera. W DirectAdmin znajdują się one pod “Site Summary / Statistics / Logs”. Następnie otwieramy “Apache Error Log” i szukamy linijki, która zawiera treść “PHP Fatal error”.

Sposób trudniejszy

Logujemy się przez klienta FTP i otwieramy plik znajdujący się  w katalogu config o nazwie config.inc.php. Następnie odszukujemy linijkę, która zawiera informacje o wyświetlaniu błędów

define(‘_PS_MODE_DEV_’, false);

i zamieniamy ją na

define(‘_PS_MODE_DEV_’, true);

Od tej pory na sklepie będą wyświetlały się wszystkie błędy, jak i ostrzeżenia tak zwane “warnings”. Będą zmniejszały one czytelność strony, ale pamiętaj – to nie są błędy.

Pamiętaj o tworzeniu kopii zapasowych !!!

Wiesz, jaki masz błąd? To czas go naprawić!

Najprostsze rozwiązania są najlepsze. Najprościej wkleić linijkę w wyszukiwarkę Google. Prawdopodobieństwo, że ktoś miał taki sam błąd jak Ty, jest prawie 100%.

Zauważ, że prawie każdy programista, jeśli nie umie zdiagnozować błędu, to robi to, co poleciłem powyżej. Czasami dla lepszego dopasowania wyników na początku dopisuje prestashop i jego wersje. Przykład takiego błędu:

“PHP Fatal error: Uncaught Error: Call to undefined function mcrypt_encrypt() in /home/xxxnum/domains/xxxxxx.pl/public_html/classes/Rijndael.php:51

Przedstawiona przeze mnie metoda jest prosta i pozwala naprawić w krótkim czasie większość błędów na sklepie. Niestety zdarzają się sytuacje, że wytropienie błędu zajmuje dużo więcej czasu, a komunikaty prowadzą w zupełnie innym kierunku, niż powinno się iść.