Porady

Popularne błędy PrestaShop i jak je naprawić?

Prestashop to popularne darmowe oprogramowanie e-commerce do tworzenia sklepów internetowych. Jest jednym z najchętniej wybieranych rozwiązań w branży e-commerce. Pozwala stworzyć na własnym serwerze duży i rozbudowany sklep dla dowolnej branży. Możliwości platformy PrestaShop są rozszerzane przez różnego rodzaju moduły oraz motywy. Jak w każdym oprogramowaniu mogą pojawić się błędy, czy to w wyniku zmiany serwera czy aktualizacji. Zobaczmy zatem, jakie trzy popularne błędy PrestaShop najczęściej spędzają nam sen z powiek i spróbujmy je naprawić.

unsplash
Błędy PrestaShop – jak sobie z nimi radzić? Photo by Fahrul Razi on Unsplash

Popularne Błędy PrestaShop! – jak sobie z nimi radzić?

W sytuacji wystąpienia problemów ze stroną zarządzaną przez mniej zaawansowanych użytkowników PrestaShop zachęcamy aby skontaktować się z naszymi mnichami z Biura Obsługi Klienta, którzy zweryfikują problem w twoim imieniu.

“Biały ekran śmierci” (“White Screen of Death”) w PrestaShop

Błąd typu 500 ( Internal Server Error – wewnętrzny błąd serwera 500 ) nazywany również “Białym ekranem śmierci” straszy nas praktycznie przy każdym internetowym oprogramowaniu. Nie jest inaczej w przypadku popularnej platformy e-commerce PrestaShop. Gdy nasz sklep nie wyświetla żadnej zawartości, a tylko białą stronę lub też komunikat o wystąpieniu błędu typu 500, to możemy być pewni jednego. W naszej instalacji PrestaShop pojawił się błąd, który trzeba naprawić. Poniżej przedstawimy jak zweryfikować problem oraz kilka rozwiązań, które pomogą nam przywrócić działanie naszego sklepu w PrestaShop.

Biały ekran śmierci w Prestashop
Błędy PrestaShop: Biały Ekran Śmierci

Włącz debugowanie PrestaShop

Pierwszą i najważniejszą rzeczą, która pomoże nam zweryfikować źródło problemu jest tryb debugowania. Dzięki niemu zamiast białej strony czy też informacji o błędzie typu 500 otrzymamy komunikat o konkretnym błędzie, który występuje na naszej stronie. To ułatwi nam identyfikację problemu, który będziemy mogli rozwiązać korzystając z poniższych przykładowych rozwiązań czy też umożliwi nam znalezienie rozwiązania w wyszukiwarce Google.

Żeby włączyć tryb debugowania musimy w Panelu klienta w zakładce SERWER przejść do Managera plików lub zalogować się na nasze konto FTP i w lokalizacji /domains/nazwa_domeny/public_html/config/ odnaleźć plik defines.inc.php. Następnie we wspomnianym pliku w linii:

define('PS_MODE_DEV', false);

Dokonujemy zmiany wartości z “false” na “true”. Linia ta po dokonaniu zmiany powinna wyglądać następująco:

define('PS_MODE_DEV', true);

Po zapisaniu pliku na serwerze i odświeżeniu strony powinniśmy otrzymać komunikat o tym, jaki błąd występuje w naszej instalacji PrestaShop.

W momencie, gdy jednak po uruchomieniu trybu debugowania nasza strona w środowisku DEV wyświetla się prawidłowo to sam problem możemy spróbować rozwiązać poprzez wyczyszczenie cache strony w sposób opisany w sekcji “Usuń cache z PrestaShop”.

Wyświetl logi!

Jeśli tryb debugowania nie umożliwił nam wyświetlenia komunikatu błędu w PrestaShop to niestety, ale musimy szukać dalej. Dlatego powinniśmy zajrzeć do logów serwera. Często znajdziemy w nich szczegółowe informacje na temat błędu, który spowodował problem. W przypadku PrestaShop doskonale sprawdza się modyfikacja pliku .htaccess, gdzie dodajemy poniższą regułę na początku pliku:

php_flag log_errors On
php_value error_log /home/nazwa_uzytkownika/domains/nazwa_domeny/public_html/MY_PHP_ERRORS.log

Dzięki dodanej regule w pliku .htaccess otrzymamy na serwerze we wskazanym miejscu plik z logami PHP serwera. W nim powinniśmy znaleźć informację o pliku, który powoduje błąd na stronie.

Sprawdź wersję PHP na serwerze

Jedną z przyczyn wystąpienia błędu może być niewłaściwa wersja PHP dla naszej domeny. Brak kompatybilności popularnej Presty z naszą wersją PHP może być spowodowany wersją systemu, zainstalowanymi modułami lub motywami. Dlatego jednym z kroków, jakie powinniśmy wykonać podczas sprawdzania tego błędu jest weryfikacja wersji PHP na serwerze. Wersja PHP dla naszej wersji PrestaShop powinna się zgadzać z oficjalną specyfikacją.

Może jednak zdarzyć się tak, że jakiś moduł nie wspiera zalecanej wersji PHP, dlatego warto sprawdzić niższe wersje PHP w celu weryfikacji.

Wersję PHP można zmienić na dwa sposoby, które zostały opisane w naszej bazie wiedzy – Zmiana wersji PHP dla domeny .

Gdy wersja PHP jest zgodna z zalecaną, a niższe wersje PHP również nie sprawiają, że błąd znika, powinniśmy sprawdzić kolejne możliwości.

Moduły PHP czy na pewno wszystkie wymagane moduły są uruchomione?

Bardzo ważną kwestią jest również to czy w konfiguracji PHP mamy uruchomione wszystkie moduły, które wymagane są do prawidłowego działania skryptu. Informację na ten temat otrzymamy po uruchomieniu debugowania czy też uruchomienia logów.

Listę modułów, które posiadamy uruchomione, jak i możliwe są do uruchomienia możemy znaleźć w Panelu klienta w zakładce Zaawansowane > Zmiana wersji PHP, cały ten proces został przedstawiony w naszej bazie wiedzy – Wybór modułów PHP .

Złe uprawnienia plików

Częstym powodem mogą być również złe uprawnienia plików lub katalogów. Warto wtedy przywrócić standardowe uprawnienia, które wyglądają tak:

  • 644 dla plików
  • 755 dla katalogów

Uprawnienia plików lub katalogów możesz sprawdzić przy pomocy konta FTP/SSH. Zaloguj się na swój serwer i w katalogu z instalacją PrestaShop spójrz na kolumnę “Prawa dostępu”.

Jeżeli prawa nie zgadzają się z powyższymi wartościami standardowymi, to należy dokonać zmiany uprawnień katalogów oraz plików. Uprawnienia można zmienić przez klienta FTP/SSH lub logując się do Panelu Klienta, gdzie w zakładce ZAAWANSOWANE znajdziemy opcję “resetuj uprawnienia plików”. Opcja ta przywróci poprawnie uprawnienia plików i katalogów na naszym serwerze. Cały proces tej czynności został przedstawiony w naszej bazie wiedzy pod adresem Przywracanie uprawień plików i katalogów.

Problem z motywem lub modułem

W wielu przypadkach sprawcami niepoprawnie działającej instalacji PrestaShop są moduły lub motywy. Jeśli błąd pojawia się po zainstalowaniu nowego motywu lub modułu, to sprawa jest jasna. Należy usunąć ostatnio zainstalowane dodatki. W sytuacji, gdy posiadamy dostęp do panelu administracyjnego nie będziemy mieli problemu z wyłączeniem modułu lub motywu. Jeśli jednak nie możemy dostać się do panelu to warto skorzystać z konta FTP lub Managera plików, który dostępny jest w Panelu klienta w zakładce SERWER.

Wszystkie nasze zainstalowane wtyczki znajdziemy w /domains/nazwa_domeny/public_html/modules/, natomiast motywy w /domains/nazwa_domeny/public_html/themes/.

Katalogi na serwerze FTP
Katalogi modules i themes w PrestaShop.

Po znalezieniu katalogu z problematycznym dodatkiem, należy zmienić nazwę katalogu, np. dodając na końcu nazwy “.old”. W ten sposób wyłączymy moduł lub szablon, a nasza strona powinna zacząć poprawnie funkcjonować. Jeśli wciąż chcielibyśmy korzystać z modułu lub motywu, który powoduje problem, najlepiej wtedy skontaktować się z jego twórcą w celu poinformowania go o zaistniałym problemie. Dodatkowo możemy również zweryfikować fora czy też githuba twórcy w celu zweryfikowania czy dany problem nie został już poruszony, jak i nie zostało tam przedstawione rozwiązanie naszego problemu.

Limit pamięci i procesów

Różne błędy PrestaShop mogą wynikać z problemów z limitami w konfiguracji PHP na serwerze. Nasz sklep może mieć do dyspozycji zbyt mało pamięci na wykonywanie procesów. Może również się zdarzyć, że nasza instalacja PrestaShop przekracza dozwoloną liczbę procesów przydzielonych na użytkownika.

W kwestii limitów pamięci, sprawa jest prosta. Musimy zalogować się do Panelu Klienta i w zakładce ZAAWANSOWANE wybrać opcję “Zmiana wersji PHP”. Znajdziemy tam opcję “memory_limit”, którą możemy ustawić maksymalnie na 1024MB. Po zwiększeniu limitu pamięci należy odświeżyć stronę i spojrzeć, czy nasz sklep działa poprawnie.

Limit pamięci
Zmiana limitu pamięci w Panelu Klienta Zenbox.

Jeśli nasz sklep nie działa po zmianie limitu pamięci, możliwe, że przekracza liczbę procesów przydzielonych użytkownikowi. W tej sytuacji najlepiej skontaktować się z naszymi mnichami z Biura Obsługi Klienta.

Sprawdź .htaccess

W momencie wystąpienia błędu 500 warto sprawdzić nasz plik .htaccess. Najlepiej dokonać modyfikacji nazwy na .htaccess.bk. Jeśli po takiej zmianie nasza strona zaczęła poprawnie funkcjonować. Problemem jest nasz plik .htaccess i zawarte w nim dyrektywy.

Usuń cache z PrestaShop

Błędy PrestaShop może powodować cache. Należy go usunąć. Jeżeli mamy dostęp do panelu administratora, możemy cache wyczyścić w zakładce Zaawansowane – Wydajność, klikając przycisk “Wyczyść pamięć podręczną”.

Jeżeli nie mamy dostępu do panelu, operację możemy wykonać korzystając z klienta FTP. Logujemy się na nasz serwer i usuwamy bądź zmieniamy nazwę dodając końcówkę “_old” do następujących katalogów:

W wersji PrestaShop 1.5 i 1.6 będzie to katalog cache, który znajduje się w /domains/nazwa_domeny/public_html/ .

Natomiast w PrestaShop w wersji 1.7 cache musimy usunąć z lokalizacji /domains/nazwa_domeny/public_html/var/ .

Uszkodzone pliki PrestaShop

Jeżeli w ostatnim czasie dokonałeś aktualizacji PrestaShop lub wprowadziłeś dowolną modyfikację w plikach, to właśnie to może być przyczyną problemu. W takim wypadku warto przywrócić kopię zapasową plików z działającego okresu. Jeżeli backup również posiada uszkodzone pliki, alternatywnie można je wgrać z czystej instalacji PrestaShop.

O tym, jak przywrócić pliki z kopii zapasowej Zenbox, przeczytasz w naszej Bazie Wiedzy.

Błąd połączenia z bazą danych

Błąd połączenia z bazą danych najcześciej jest spowodowany nieprawidłowymi informacjami o bazie danych w pliku konfiguracyjnym. Jest to błąd prosty do naprawienia, aczkolwiek w przypadku PrestaShop musimy szczególnie zwrócić uwagę na to, z której wersji oprogramowania e-commerce korzystamy w czasie poszukiwania informacji o podłączonej bazie danych.

W PrestaShop w wersji 1.5 i 1.6 plik konfiguracyjny z danymi bazy znajdziemy w /domains/nazwa_domeny/public_html/config/settings.inc.php .

Natomiast w PrestaShop w wersji 1.7 plik konfiguracyjny z danymi do bazy danych znajdziemy w /domains/nazwa_domeny/public_html/app/config/parameters.php .

We wszystkich wersjach, dane do bazy będą wyglądały w następujący sposób:

define('_DB_SERVER_', 'adres serwera');
define('_DB_NAME_', 'nazwa bazy');
define('_DB_USER_', 'nazwa użytkownika');
define('_DB_PASSWD_', 'hasło użytkownika');

Trzeba się upewnić, że wprowadzone dane są poprawne. Gdy nie jesteśmy pewni danych zawartych w pliku konfiguracyjnym, najlepiej dokonać resetu hasła użytkownika bazy danych w Panelu Klienta:

Musimy zalogować się do Panelu Klienta, gdzie w sekcji SERWER wybieramy pozycję Bazy MySQL.

Wybieramy nazwę naszej bazy, którą znaleźliśmy w pliku konfiguracyjnym PrestaShop, klikając w jej nazwę. Następnie przy użytkowniku bazy danych wybieramy opcję “zmień hasło” i generujemy nowe hasło.

Nowe hasło podajemy w pozycji define('_DB_PASSWD_', 'hasło użytkownika');

W czasie sprawdzania bazy danych należy upewnić się, że baza danych w pliku konfiguracyjnym wskazuje poprawnie na serwer w Zenbox. Serwerem bazy danych będzie localhost.

Jeśli powyższe porady nie rozwiązały problemu ze sklepem internetowym opartym o PrestaShop, skontaktuj się z naszymi mnichami z Biura Obsługi Klienta.

Zobacz także: