Zmiana wersji PHP WordPress PrestaShop to temat, który wielu właścicielom stron i sklepów internetowych spędza sen z powiek. Z jednej strony kusi lepszą wydajnością, bezpieczeństwem i wsparciem nowych funkcji. Z drugiej – straszy możliwymi błędami, konfliktami wtyczek lub modułów i przestojem serwisu. Dobra wiadomość? Można to zrobić bezpiecznie, przewidywalnie i bez wielkich nerwów. Poniżej znajdziesz praktyczny, ludzki przewodnik, który prowadzi za rękę przez cały proces: od audytu, przez testy na środowisku staging, po płynne przełączenie produkcji i monitoring po zmianie.
Dlaczego w ogóle aktualizować PHP?
Nowsza wersja PHP to realny zysk: wydajność, bezpieczeństwo, zgodność i dłuższe wsparcie.
Aktualizacja PHP to nie tylko „techniczna fanaberia”. Najważniejsze korzyści:
– Szybkość: PHP 8.x działa zauważalnie szybciej niż 7.x, a to oznacza krótsze czasy ładowania i lepsze wyniki Core Web Vitals.
– Bezpieczeństwo: starsze gałęzie PHP przestają otrzymywać łatki. To ryzyko, którego lepiej unikać.
– Zgodność: nowe biblioteki, motywy i moduły coraz częściej wymagają PHP 8.1/8.2.
– Koszty: stabilniejszy i wydajniejszy stack to mniej incydentów i mniejsze koszty utrzymania.
Jeśli Twoja strona lub sklep „ciągnie się” na PHP 7.3/7.4, to aktualizacja może być jednym z najmniej inwazyjnych i najtańszych skoków wydajności.
Minimalne wymagania i rekomendacje dla WordPress i PrestaShop
Najpierw sprawdź, czy Twój CMS i dodatki „lubią się” z docelową wersją PHP.
– WordPress:
– W praktyce współczesne wersje WordPressa dobrze działają na PHP 8.0–8.3.
– Rekomendacja: co najmniej PHP 8.1, a optymalnie 8.2/8.3 (jeśli wtyczki i motyw są zgodne).
– Upewnij się, że motyw (szczególnie customowy) i kluczowe wtyczki są aktualne i wspierają PHP 8.x.
– PrestaShop:
– PrestaShop 1.7.8 zwykle bezpieczniej działa na PHP 7.4 lub 8.0 (8.1 bywa problematyczne z częścią modułów).
– PrestaShop 8.x jest projektowany pod PHP 8.1 oraz 8.2 – to obecnie najbezpieczniejszy kierunek dla nowych wdrożeń.
– Zwróć szczególną uwagę na moduły komercyjne z ionCube – ich kompatybilność z PHP 8.x może zależeć od wersji loadera i samego modułu.
Wniosek: zanim wybierzesz wersję PHP, dopasuj ją do używanej wersji CMS i dodatków. Zmiana z 7.4 prosto na 8.2 bez sprawdzenia zgodności bywa przepisem na kłopoty.
Zmiana wersji PHP WordPress PrestaShop — plan krok po kroku
Pewny proces = mniejsze ryzyko. Idziemy metodycznie, bez skoków na głęboką wodę.
– 1) Sporządź inwentaryzację
– Zanotuj wersję WordPress/PrestaShop, listę wtyczek/modułów wraz z wersjami, motyw, wersję PHP i rozszerzenia (mbstring, intl, gd/imagick, zip, curl, mysqli, openssl, xml, dom).
– Dla PrestaShop: sprawdź wymagania modułów kluczowych dla sprzedaży (płatności, dostawy, integracje ERP).
– 2) Wybierz docelową wersję PHP
– WordPress: celuj w PHP 8.1/8.2.
– PrestaShop: 1.7.8 -> 7.4/8.0; PrestaShop 8.x -> 8.1/8.2.
– Priorytetem jest zgodność modułów i motywów.
– 3) Zrób pełną kopię zapasową
– Pliki + baza danych + eksport konfiguracji hostingu (reguły crona, .user.ini, php.ini per user, vhost).
– Przechowuj backup offsite. Sprawdź możliwość szybkiego przywrócenia.
– 4) Przygotuj środowisko staging
– Najlepiej subdomena (staging.domena.pl) lub środowisko tymczasowe w panelu hostingu.
– Sklonuj produkcję 1:1, wyłącz indeksację w wyszukiwarkach.
– Skonfiguruj osobne logi błędów (error_log), aby łatwiej je analizować.
– 5) Zaktualizuj CMS i dodatki na stagingu
– WordPress: najpierw rdzeń, potem wtyczki i motyw (child theme zachowaj).
– PrestaShop: zaktualizuj rdzeń w obrębie wspieranej gałęzi lub do 8.x, jeśli planujesz PHP 8.1/8.2. Zrób to na stagingu, nie na produkcji.
– 6) Przełącz PHP na stagingu i włącz potrzebne rozszerzenia
– Upewnij się, że działają: mysqli, curl, gd lub imagick, json, mbstring, zip, intl (dla PrestaShop), dom, fileinfo.
– Skonfiguruj podstawowe limity: memory_limit (min. 256M dla prostych stron, 512M–768M dla PrestaShop), max_execution_time (120–300 s), upload_max_filesize/post_max_size (np. 64M+).
– 7) Testy funkcjonalne
– WordPress: logowanie do wp-admin, edycja wpisu, wysyłka formularza, media upload, cron (np. publikacja zaplanowana), kluczowe wtyczki (SEO, cache, sklepy WooCommerce jeśli występują).
– PrestaShop: cały koszyk (dodanie, rabaty, checkout), płatności w trybie sandbox, e-maile, panel zamówień, generowanie faktur, import/eksport, integracje (kurierzy, hurtownie).
– Sprawdź konsolę przeglądarki (błędy JS) i logi serwera/PHP.
– 8) Naprawy i optymalizacje
– Błędy „undefined function” często oznaczają brak rozszerzenia (np. mbstring, intl).
– Deprecated notices w PHP 8.1/8.2: zwykle informacyjne, ale warto je przejrzeć i zgłosić autorom wtyczek/modułów; niektóre mogą wpływać na stabilność.
– W razie problemów wyłącz/ zastąp niekompatybilną wtyczkę/moduł, poszukaj aktualizacji lub alternatywy.
– 9) Plan przełączenia produkcji
– Okno serwisowe przy niskim ruchu.
– Tryb konserwacji na czas przełączenia (zwłaszcza w PrestaShop).
– Świeży backup tuż przed zmianą.
– Plan awaryjny: szybki powrót do poprzedniej wersji PHP.
– 10) Przełączenie i monitoring
– Przełącz produkcję, wyczyść cache (WP: cache wtyczki + OPcache; PS: cache Smarty, a potem również OPcache).
– Testy „smoke test” po przełączeniu: logowanie, koszyk/checkout, płatność testowa, formularze.
– Monitoruj logi i metryki (czas odpowiedzi, błędy 500, porzucone koszyki).
Jak przełączyć wersję PHP u popularnych dostawców hostingu
Panel hostingu zwykle wystarcza – bez SSH i skomplikowanych komend.
– cPanel: MultiPHP Manager -> wybierz domenę/subdomenę -> ustaw wersję PHP -> potwierdź. Sprawdź zakładkę „Select PHP Extensions” lub „PHP Selector”.
– Plesk: Domeny -> Ustawienia hostingu -> Wersja PHP i tryb obsługi (FPM/CGI). Włącz/wyłącz moduły i ustaw dyrektywy.
– DirectAdmin: „Select PHP Version” lub „PHP-FPM Selector” -> wybierz wersję -> zaznacz rozszerzenia -> zapisz.
– VPS/dedyk: Nginx/Apache + PHP-FPM
– Zainstaluj równolegle nowe PHP (np. 8.2) i utwórz osobny pool FPM.
– Podmień socket/port w vhoście dla domeny testowej, potem produkcyjnej.
– Upewnij się, że cron używa tej samej wersji (środowisko CLI).
W każdym wypadku po zmianie zrestartuj usługi (FPM/Apache/Nginx) i wyczyść OPcache.
Specyfika WordPress: na co uważać przy PHP 8.x
Większość nowoczesnych wtyczek już działa, ale starsze dodatki potrafią zaskoczyć.
– Starsze motywy/wtyczki mogą używać przestarzałych konstrukcji (create_function, dynamiczne właściwości obiektów) – w PHP 8.1/8.2 pojawią się ostrzeżenia lub błędy.
– Zwróć uwagę na biblioteki obrazów: Imagick vs GD. Jeśli pojawiają się błędy generowania miniatur, przełącz na GD albo zaktualizuj Imagick.
– Narzędzia diagnostyczne:
– „Site Health” w kokpicie WordPressa wskaże problemy z konfiguracją.
– WP-CLI: szybkie aktualizacje i przegląd stanu (świetne w stagingu).
– Cache po aktualizacji:
– Wyczyść cache wtyczki (np. WP Rocket, W3TC) i OPcache.
– Rozważ włączenie obiektowego cache (Redis) dla większych serwisów.
Specyfika PrestaShop: ostrożnie z modułami i PHP intl
Sklep to łańcuch naczyń połączonych – wystarczy jeden moduł, by zablokować zamówienia.
– Moduły płatności i logistyki: sprawdź zgod (Incomplete: max_output_tokens)