Aktualizacja do PrestaShop Wersja 9.x to poważna zmiana. Często jednak pojawia się w niej zestaw frustrujących błędów, które mogą zaskoczyć. Niektóre problemy są drobne. Inne mogą całkowicie wyłączyć Twój sklep. Niezależnie od tego, czy jesteś deweloperem, czy właścicielem sklepu, ten przewodnik pomoże Ci szybko zidentyfikować i rozwiązać najczęstsze problemy.
1. Błąd HTTP 500: Biały ekran śmierci
To najczęstszy błąd po aktualizacji. Twoja witryna wyświetla pustą, białą stronę. Nic się nie ładuje i nie pojawia się żaden komunikat o błędzie. Znany również jako biały ekran śmierci. Zwykle występuje z jednej z dwóch przyczyn. Albo ukryty błąd PHP powoduje awarię witryny, albo serwer korzysta z niekompatybilnej wersji PHP.
Krok 1: Włącz tryb debugowania
Nie da się naprawić czegoś, czego nie widać. Dlatego pierwszym krokiem jest włączenie trybu debugowania. Przez FTP: Przejdź do pliku /config/defines.inc.php. Znajdź wiersz define(‘PS_MODE_DEV’, false); i zmień wartość z false na true. Zapisz plik.
Przez phpMyAdmin: Otwórz tabelę ps_configuration. Znajdź PS_DEV_MODE i ustaw jej wartość na 1. Następnie odśwież stronę. Na ekranie pojawi się teraz prawdziwy błąd.
Krok 2: Przeczytaj uważnie błąd
Gdy błąd jest widoczny, poszukaj wskazówek. Jeśli wskazuje na ścieżkę do modułu, taką jak /modules/somename/, to właśnie ten moduł jest przyczyną. Jeśli wspomina o klasie lub funkcji PHP, prawdopodobnie jest to problem ze zgodnością. Zanotuj wszystkie błędy przed wprowadzeniem jakichkolwiek zmian.
Krok 3: Sprawdź dzienniki błędów serwera
Niektóre błędy pojawiają się tylko w logach serwera, nawet przy włączonym trybie debugowania. Przejdź do cPanel i otwórz sekcję „Logi błędów”. Sprawdź najnowsze wpisy. Wskazują one dokładnie, który plik spowodował awarię.
2. Niezgodność wersji PHP
PrestaShop 9.x działa tylko na PHP 8.1, 8.2 lub 8.3. Jeśli Twój serwer nadal korzysta z PHP 7.4 lub PHP 8.0, strona zawiesi się zaraz po aktualizacji. To jedna z najczęściej pomijanych przyczyn białego ekranu śmierci.
Jak to naprawić
Zaloguj się do cPanelu i przejdź do sekcji „Wybierz wersję PHP”. Zmień wersję PHP na PHP 8.1, 8.2 lub 8.3 i zapisz. Następnie sprawdź swoje rozszerzenia PHP. PrestaShop 9 wymaga rozszerzeń intl i gd. Upewnij się, że oba są włączone. Bez nich niektóre funkcje nie będą działać nawet po załadowaniu witryny. Którą wersję wybrać? PHP 8.2 to najstabilniejszy wybór. Oferuje dobrą wydajność i szeroką kompatybilność modułów. Dlatego zacznij od wersji 8.2, chyba że masz konkretny powód, aby wybrać wyższą.
3. Zablokowana pamięć podręczna i uszkodzone układy
Czasami strona ładuje się po aktualizacji, ale coś wygląda nie tak. Przyciski nie działają. Brakuje obrazków. Układ wygląda zupełnie inaczej niż wcześniej. Znajdź folder /var/ po uruchomieniu klienta FTP. Znajdź folder pamięci podręcznej, a następnie zmień jego nazwę na cache_old. W rezultacie, przy kolejnym odświeżeniu, PrestaShop automatycznie utworzy nowy cache. Natychmiast po tym układ powinien wrócić do normy. Metoda A: Zmiana nazwy folderu pamięci podręcznej Otwórz klienta FTP i przejdź do folderu /var/. Znajdź folder pamięci podręcznej i zmień jego nazwę na cache_old. PrestaShop automatycznie utworzy nowy cache przy następnym odświeżeniu. Układ powinien wrócić do normy zaraz po tym.
Metoda B: Wyczyść pamięć podręczną przez SSH. Jeśli masz dostęp do SSH, uruchom to polecenie, aby dokładniej wyczyścić pamięć podręczną: rm -rf var/cache/*. Po wyczyszczeniu pamięci podręcznej serwera naciśnij Ctrl+F5 w przeglądarce. W przeciwnym razie możesz nadal widzieć starą wersję z pamięci podręcznej przechowywaną lokalnie.
4. „Coś poszło nie tak” podczas automatycznej aktualizacji
Wielu właścicieli sklepów uruchamia automatyczną aktualizację i obserwuje, jak kończy się ona niepowodzeniem w połowie. Proces zatrzymuje się i wyświetla niejasny komunikat. Nie podano jasnego powodu. Jest to znany problem zgłaszany wielokrotnie w oficjalnym repozytorium PrestaShop GitHub. W większości przypadków sprowadza się to do jednej z następujących przyczyn. Przyczyna 1: Dowiązania symboliczne PHP są wyłączone Dowiązania symboliczne PHP są używane przez PrestaShop 9 w przypadku wyodrębniania plików. Domyślnie wiele firm oferujących hosting współdzielony wyłącza tę funkcję. W rezultacie aktualizacja zostaje zablokowana i nie można jej ukończyć. Rozwiązanie: Porozmawiaj ze swoją firmą hostingową i poproś o aktywację funkcji dowiązań symbolicznych PHP. Rozważ przeprowadzenie aktualizacji na serwerze VPS, gdzie masz pełną kontrolę nad ustawieniami PHP, jeśli oni nie są w stanie tego zrobić. Przyczyna 2: Stary moduł Asystenta Aktualizacji Uruchamianie aktualizacji sklepu z przestarzałym modułem Asystenta Aktualizacji to kolejna częsta przyczyna niepowodzenia. Dlatego zawsze pobieraj i instaluj najnowszą wersję przed rozpoczęciem. Przyczyna 3: Niewystarczające zasoby serwera Proces aktualizacji wymaga dużych zasobów. Jeśli Twój serwer ma mało pamięci lub nałożony jest ścisły limit czasu wykonywania PHP, proces przekroczy limit czasu. Poproś swojego hosta o tymczasowe zwiększenie wartości PHP max_execution_time i memory_limit przed ponowną próbą. Przede wszystkim — zawsze twórz kopie zapasowe. Najpierw wyeksportuj bazę danych i pobierz wszystkie pliki przez FTP. Jeśli aktualizacja się nie powiedzie, możesz przywrócić wszystko bez utraty danych.
5. Błędy modułów i wyjątki Symfony
PrestaShop 9.x został przeniesiony na Symfony 6.4 i usunął dużą ilość przestarzałego kodu. Z tego powodu wiele modułów, które działały w PrestaShop 8.x, przestało działać w wersji 9. Jest to szczególnie częste w przypadku niestandardowych bramek płatności, modułów wysyłki lokalnej i starszych wtyczek banerowych. Metoda A: Wyłącz moduł przez FTP Ponieważ zaplecze również może być uszkodzone, nie zawsze możesz korzystać z Menedżera modułów. Zamiast tego przejdź do folderu /modules/ przez FTP. Znajdź uszkodzony folder modułu i zmień jego nazwę, dodając _OFF na końcu. Na przykład zmień nazwę my-slider na my-slider_OFF. PrestaShop nie będzie go już ładował. Następnie odśwież swoją stronę. Powinna załadować się normalnie. Metoda B: Resetowanie przez bazę danych Jeśli chcesz, aby moduł pozostał aktywny, spróbuj go zresetować. Otwórz phpMyAdmin i przejdź do tabeli ps_module. Usuń wiersz dla tego modułu. Następnie przejdź do strony modułów w zapleczu. PrestaShop potraktuje to jako świeżą instalację. Czasami pozwala to załagodzić konflikt.
6. Nie można uzyskać dostępu do panelu administracyjnego
Po aktualizacji strona logowania może się odświeżać bez wyświetlania błędu. Zazwyczaj jest to spowodowane uszkodzonymi plikami cookie lub błędną konfiguracją adresu URL. Rozwiązanie 1: Wyczyść wszystkie pliki cookie przeglądarki i spróbuj zalogować się ponownie. Rozwiązanie 2: Otwórz phpMyAdmin i sprawdź tabelę ps_shop_url. Upewnij się, że pola domeny i physical_uri są zgodne z obecnym adresem witryny. Na przykład, jeśli przeniosłeś się z podfolderu do domeny głównej, zaktualizuj physical_uri do / zamiast /shop/. Rozwiązanie 3: Zmień nazwę pliku .htaccess na .htaccess_old przez FTP. Następnie przejdź do Parametry sklepu > Ruch i SEO. Wyłącz opcję „Przyjazny adres URL”, zapisz, a następnie włącz ją ponownie i zapisz ponownie. PrestaShop wygeneruje nowy, czysty plik.
7. Błędy 404 w produktach lub kategoriach
To jeden z najbardziej szkodliwych problemów z perspektywy SEO. PrestaShop 9 zmienił domyślną strukturę adresów URL dla stron produktów. W starszych wersjach adresy URL zawierały nazwę kategorii, na przykład /odzież-męska/niebieska-koszula.html. W PrestaShop 9 kategoria jest domyślnie usuwana. Adres URL staje się po prostu /niebieska-koszula.html. W rezultacie wszystkie stare adresy URL przestają działać. Co więcej, PrestaShop nie konfiguruje automatycznych przekierowań. Google zaindeksował już Twoje stare adresy URL, więc jeśli zwrócą one błąd 404, możesz stracić znaczną część ruchu organicznego. Jak to naprawić Najpierw wyeksportuj wszystkie stare adresy URL produktów z Google Search Console lub starej mapy witryny. Następnie przejdź do Parametry sklepu > Ruch i SEO. Wysyłając obecną wartość SEO do nowego adresu URL, przekierowanie 301 powiadamia Google, że strona została trwale przeniesiona. Na koniec, aby przyspieszyć indeksowanie nowych adresów URL, prześlij zaktualizowaną mapę witryny do Google Search Console.
8. Problemy ze zgodnością motywu
Starsze motywy mogą wyglądać na uszkodzone lub nie ładować się po aktualizacji. PrestaShop 9 wprowadził istotne zmiany w interfejsie użytkownika. W rezultacie wiele motywów stworzonych dla wersji 8.x nie jest już kompatybilnych. Jeśli Twój motyw został dotknięty tym problemem, tymczasowo zmień go na domyślny motyw Hummingbird. Następnie skontaktuj się z programistą w celu uzyskania aktualizacji. Jeśli motyw nie jest już wspierany, migracja do motywu natywnego dla PrestaShop 9 będzie lepszym rozwiązaniem długoterminowym.
Uwagi końcowe
Większość błędów aktualizacji PrestaShop 9.x wynika z trzech czynników: nieaktualnych modułów, problemów z pamięcią podręczną i konfiguracji PHP. Dlatego zawsze zaczynaj od trybu debugowania, aby zidentyfikować przyczynę problemu. Następnie, po kolei, przejrzyj powyższe rozwiązania. Przede wszystkim, przed wprowadzeniem jakichkolwiek poważniejszych zmian, wykonaj pełną kopię zapasową. Ten jeden krok może zaoszczędzić Ci wielu godzin stresującej pracy związanej z odzyskiwaniem danych.
Knowband Oferujemy profesjonalne usługi rozwoju i aktualizacji PrestaShop, aby zapewnić płynne przejście bez zakłócania działania sklepu. Od rozwiązywania błędów 500 i wyjątków Symfony, po rozwiązywanie konfliktów modułów i optymalizację wydajności – nasz doświadczony zespół zapewnia kompleksowe wsparcie techniczne dopasowane do potrzeb Twojej firmy.
Niezależnie od tego, czy potrzebujesz pomocy w rozwiązywaniu problemów, dostosowywaniu modułów czy pełnej modernizacji sklepu, Knowband pomoże Ci szybko i bezpiecznie przywrócić działanie Twojego sklepu.
Skontaktuj się z naszym zespołem pod adresem support@knowband.com już dziś, aby zapewnić sobie bezproblemową aktualizację do PrestaShop 9.
