Zmiana wersji PHP w WordPressie – bez awarii strony
Hosting zmienia PHP albo kończy się wsparcie PHP 8.2? Jak przygotować WordPressa, przetestować nową wersję na kopii i przełączyć prawdziwą stronę bez awarii.
W skrócie: zanim zmienią Państwo wersję PHP strony na WordPressie, trzeba zaktualizować WordPressa, motyw i wtyczki. Potem nową wersję najlepiej przetestować na kopii strony i przeczytać log błędów. Dopiero gdy nie ma w nim nic poważnego, można przełączyć prawdziwą stronę. Pod koniec 2026 roku dotyczy to wszystkich, którzy używają jeszcze PHP 8.2 lub starszego: PHP 8.2 od 1 stycznia 2027 nie dostaje już poprawek bezpieczeństwa.
Wersja PHP to ustawienie u hostingodawcy, zwykle pole wyboru w panelu klienta. Zmiana trwa kilka sekund. To, co dzieje się potem, zależy wyłącznie od tego, czy motyw i wtyczki poradzą sobie z nową wersją. Właśnie to warto wiedzieć przed zmianą, a nie po niej.
Która wersja PHP jest właściwa?
- PHP 8.1 i starsze: brak poprawek bezpieczeństwa – zmienić pilnie.
- PHP 8.2: poprawki bezpieczeństwa do 31.12.2026 – zmienić teraz.
- PHP 8.3: poprawki bezpieczeństwa do 31.12.2027 – bezpieczny krok pośredni.
- PHP 8.4: poprawki bezpieczeństwa do 31.12.2028 – dobry wybór dla zadbanych stron.
- PHP 8.5: poprawki bezpieczeństwa do 31.12.2029 – tylko z aktualnymi wtyczkami.
Dla zadbanej strony z aktualnym WordPressem właściwym wyborem jest zwykle PHP 8.3 albo 8.4. Jakiej wersji używa Państwa strona, widać w „Narzędzia → Kondycja witryny → Informacje → Serwer”.
Dlaczego strony psują się po zmianie
Każda wersja PHP usuwa stare funkcje albo zmienia to, jak surowo PHP traktuje błędy. Sam WordPress jest na bieżąco dostosowywany. Przy wtyczkach i motywach zależy to od tego, czy ktoś je jeszcze rozwija. Typowe problemy:
- Usunięte funkcje:
create_function()ieach()nie istnieją od PHP 8.0. Strony przechodzące z PHP 7.4 prawie zawsze się o nie potykają. Więcej w artykule PHP 7.4, 8.0, 8.1 – koniec wsparcia. - Surowsze sprawdzanie typów: kod, który kiedyś dawał ostrzeżenie, od PHP 8 kończy się błędem, np.
count()na czymś, co nie jest listą. - Komunikaty, które stają się błędami: to, co w jednej wersji jest oznaczone jako „deprecated”, w kolejnej znika. Dzisiejsze komunikaty to jutrzejsze awarie. Przykład opisuję w artykule Creation of dynamic property is deprecated.
- Brakujące rozszerzenia: niektórych rozszerzeń nie ma już w nowych wersjach PHP, np. IMAP od PHP 8.4.
Krok 1: najpierw zaktualizować i posprzątać
- Zrobić kopię plików i bazy danych.
- Zaktualizować WordPressa, wszystkie wtyczki i motyw do najnowszych wersji.
- Usunąć nieużywane wtyczki i motywy. Także wyłączony kod może sprawiać problemy, a tak nie trzeba go testować.
- Sprawdzić na wordpress.org, kiedy każda wtyczka była ostatnio aktualizowana. Wtyczka bez aktualizacji od dwóch lat to kandydat do kłopotów.
Krok 2: przetestować na kopii
Wielu hostingodawców oferuje środowisko testowe (staging), czyli kopię strony pod adresem testowym. Proszę ustawić tam nową wersję PHP, włączyć log błędów i przeklikać najważniejsze podstrony: stronę główną, formularz kontaktowy, sklep, logowanie, panel. Potem przeczytać plik wp-content/debug.log.
Najważniejsze są linie z Fatal error: muszą zostać usunięte przed zmianą. Linie z Deprecated to zapowiedź problemów w kolejnej wersji. Strona mimo nich działa, ale warto je zanotować.
Jeśli nie ma środowiska testowego, u wielu hostingodawców można ustawić wersję PHP osobno dla każdej domeny lub subdomeny. Kopia strony na subdomenie spełni to samo zadanie.
Krok 3: przełączyć prawdziwą stronę
Proszę wybrać spokojny moment, nie piątkowy wieczór. Zmienić wersję w panelu, wyczyścić cały cache i sprawdzić te same podstrony co na kopii. Log błędów warto zostawić włączony przez dzień lub dwa, wtedy widać też rzadko występujące błędy. Potem trzeba go wyłączyć i usunąć plik debug.log.
Jeśli coś pójdzie nie tak, można przywrócić starą wersję. To hamulec awaryjny, a nie rozwiązanie, bo hostingodawca prędzej czy później sam zmieni wersję.
Co, jeśli wtyczka nie działa z nowym PHP?
- Jest aktualizacja: wgrać ją i przetestować ponownie.
- Wtyczka nie jest już rozwijana: poszukać rozwijanej alternatywy. Do większości zadań jest ich kilka.
- To własna wtyczka albo przerobiony motyw: wtedy trzeba poprawić kod. Często to mniej pracy, niż się wydaje, bo błędy są do siebie bardzo podobne.
Niektórzy hostingodawcy oferują dalsze działanie starych wersji PHP za dopłatą. To kupuje czas, ale niczego nie rozwiązuje: płacą Państwo co miesiąc za to, żeby strona została na wersji bez publicznych poprawek bezpieczeństwa.
Profesjonalna pomoc
Przed zmianą sprawdzam, czy motyw i wtyczki działają z nową wersją PHP, poprawiam kod tam, gdzie trzeba, i dopiero wtedy przełączam prawdziwą stronę. Więcej w usłudze zmiana PHP na hostingu. Jeśli cała strona ma od razu trafić do aktualnego stanu, jest aktualizacja WordPress: przegląd za 150 € netto, aktualizacja od 290 € netto.