Wersje PHP i aktualizacje
Moduł 8: Kopie zapasowe, środowisko testowe (staging) i aktualizacje PHP · Czas czytania: 10 minut
Cel lekcji: Po tej lekcji będą Państwo potrafili bezpiecznie przygotować, wykonać i w razie potrzeby cofnąć aktualizację PHP.
Kluczowe pojęcia: cykl życia PHP (aktywne wsparcie, tylko bezpieczeństwo, koniec wsparcia), zgodność WordPressa, motywu i wtyczek, przestarzałe (deprecated), ostrzeżenie, błąd krytyczny, Stan witryny, log błędów, środowisko testowe (staging), przywracanie, zlecenie wykonania aktualizacji
Dlaczego wersje PHP mają znaczenie
WordPress, Państwa motyw i wtyczki są napisane w PHP (lekcja 1.2). Co roku pojawia się nowa wersja PHP (8.3, 8.4, 8.5 itd.). Każda wersja jest utrzymywana przez określony czas:
- aktywne wsparcie: dwa lata z poprawkami błędów i luk bezpieczeństwa;
- tylko bezpieczeństwo: kolejne dwa lata, w których naprawiane są już tylko luki bezpieczeństwa;
- koniec wsparcia (end of life): brak jakichkolwiek poprawek, również dla luk bezpieczeństwa.
Stan na 8 listopada 2026 roku, według php.net:
| Wersja | Aktualizacje bezpieczeństwa do | Stan |
|---|---|---|
| 8.1 i starsze | (minęło) | Brak dalszych aktualizacji |
| 8.2 | 31 grudnia 2026 | Tylko bezpieczeństwo, blisko końca wsparcia |
| 8.3 | 31 grudnia 2027 | Tylko bezpieczeństwo |
| 8.4 | 31 grudnia 2028 | Aktywne |
| 8.5 | 31 grudnia 2029 | Aktywne |
Strona działająca na wersji bez aktualizacji korzysta z oprogramowania ze znanymi lukami, które nie są już naprawiane. Dodatkowo nowsze wersje są odczuwalnie szybsze (lekcja 6.3). A wordpress.org zaleca PHP 8.3 lub nowsze (stan na listopad 2026). Chodzi więc o to, by nadążać co roku, a nie wykonywać duży skok raz na pięć lat.
Dlaczego aktualizacja może coś zepsuć
Każda nowa wersja PHP coś zmienia. Funkcje, które od lat były oznaczone jako przestarzałe (deprecated), zostają usuwane, a reguły stają się bardziej rygorystyczne. Kilka znanych przykładów:
- PHP 8.0 usunęło między innymi
create_function()ieach(), a wiele ostrzeżeń stało się błędami; - PHP 8.2 oznaczyło dynamiczne tworzenie właściwości obiektów jako przestarzałe, co jest częstą praktyką w starszych wtyczkach.
Istnieją trzy rodzaje komunikatów i różnica między nimi jest istotna:
| Komunikat | Znaczenie | Skutek |
|---|---|---|
| Deprecated (przestarzałe) | „To jeszcze działa, ale zniknie w kolejnej wersji” | Nic widocznego; ostrzeżenie na przyszłość |
| Warning lub Notice | Coś nie do końca się zgadza | Zwykle nic widocznego, czasem jakiś element zachowuje się dziwnie |
| Fatal error | PHP przerywa działanie | Biała strona lub „błąd krytyczny” (lekcja 5.4) |
Sam WordPress zwykle dobrze nadąża za nowymi wersjami PHP. Ryzyko leży w starych wtyczkach i motywach, zwłaszcza jeśli długo nie były aktualizowane lub są tworzone na zamówienie.
Jak sprawdzić bieżącą wersję
- W WordPressie: Narzędzia > Stan witryny, zakładka Informacje, w sekcji Serwer: wersja PHP. Stan witryny ostrzega również, jeśli Państwa wersja jest przestarzała.
- W panelu hostingowym: w DirectAdmin z CloudLinux w Select PHP version (z dopiskiem „(current)” przy aktualnej wersji).
- Czasem serwer ujawnia ją w nagłówku
X-Powered-By: PHP/8.3.x. Lepiej, żeby go nie było (lekcja 7.4), ale jeśli jest, łatwo z niego skorzystać.
Uwaga: u wielu hosterów wersja PHP dotyczy całego pakietu, a więc wszystkich stron w nim zawartych. Stara strona w tym samym pakiecie może Państwa blokować. To dodatkowy powód, by porządkować stare strony albo przenieść je do osobnego pakietu.
Aktualizacja krok po kroku
- Najpierw aktualizacja. Zaktualizuj WordPressa, motyw i wszystkie wtyczki na bieżącej wersji PHP. W ten sposób rozwiązuje się już sporą część problemów, bo twórcy dostosowują swój kod do nowych wersji PHP.
- Proszę sprawdzić, co mówią wtyczki. Na stronie wtyczki w wordpress.org podana jest wymagana wersja PHP; w dzienniku zmian często widnieje „compatible with PHP 8.x”. Wtyczka, która od lat nie była aktualizowana (lekcja 5.3), jest kandydatką do wymiany.
- Wykonaj kopię zapasową (lekcja 8.1).
- Testowanie w środowisku testowym (staging) (lekcja 8.3). Jeśli hoster pozwala ustawić inną wersję PHP dla poszczególnych stron, proszę ustawić środowisko testowe na nowej wersji. Jeśli to niemożliwe (jedna wersja na cały pakiet), proszę przetestować w środowisku testowym w innym pakiecie, lokalnie, albo wybrać spokojny moment na środowisku produkcyjnym, mając gotową starą wersję do przywrócenia.
- Przełączenie: proszę wybrać nową wersję w panelu. W DirectAdmin z CloudLinux wybiera się ją w Select PHP version i klika na Apply; bez kliknięcia Apply nic się nie zmieni.
- Natychmiastowa kontrola: proszę otworzyć stronę i przejrzeć kilka podstron, w tym panel administracyjny, formularz i (przy sklepie) proces zamówienia. Proszę sprawdzić w logu błędów (lekcja 5.4), czy pojawiły się nowe wiersze
PHP Fatal error. - Rozszerzenia i ustawienia: u niektórych hosterów rozszerzenia PHP i opcje (takie jak
memory_limit) są przypisane do konkretnej wersji. Po zmianie proszę sprawdzić, czy są poprawnie ustawione dla nowej wersji.
Jeśli coś pójdzie nie tak
- Błąd krytyczny: proszę przywrócić starą wersję (u większości hosterów można to zrobić od razu), żeby strona znów działała. Proszę znaleźć w logu błędów, która wtyczka lub motyw był przyczyną (ścieżka jest podana w komunikacie o błędzie), zaktualizować ją, zastąpić inną lub poprosić twórcę o rozwiązanie. Potem proszę spróbować ponownie.
- Tylko komunikaty deprecated: nie ma powodu do wycofywania się. To jednak ostrzeżenie: przy kolejnej wersji może stać się błędem. Proszę zapisać, której wtyczki to dotyczy.
- Rozwiązania na zamówienie, które przestały działać: stara strona stworzona przez twórcę stron może zawierać kod, którym nikt już się nie zajmuje. Wówczas kod musi poprawić ktoś, kto zna PHP. Niektórzy hosterzy, także WebOké, oferują wykonanie tego za Państwa.
Proszę nie zostawiać strony „na zawsze” na starej wersji tylko dlatego, że jedna wtyczka nie nadąża. To odkładanie problemu, który z każdym rokiem rośnie.
Większa pewność z wyprzedzeniem
Dla osób, które chcą pójść dalej: za pomocą PHP_CodeSniffer i reguł PHPCompatibilityWP można sprawdzić kod swoich wtyczek i motywów pod kątem elementów, które nie będą działać w nowszej wersji PHP, bez uruchamiania strony. Znajduje to wiele, ale nie wszystko. Testowanie w środowisku testowym pozostaje konieczne.
W praktyce: jak to wygląda w panelu
Jako przykład używamy DirectAdmin z CloudLinux. W cPanel nazywa się to często MultiPHP Manager lub Select PHP Version, w Plesk PHP Settings.
- Proszę otworzyć Select PHP version (w sekcji Extra Programma's).
- Proszę kliknąć na wersję przy PHP version, wybrać nową wersję i kliknąć Apply.
- Proszę sprawdzić zakładki Extensions i Options dla nowej wersji.
- Proszę sprawdzić stronę i log błędów. Jeśli coś nie działa, proszę wybrać starą wersję i kliknąć Apply.
Podsumowanie
- Każda wersja PHP otrzymuje dwa lata aktywnego wsparcia i dwa lata wsparcia ograniczonego do bezpieczeństwa; potem nie ma już żadnych poprawek. 8 listopada 2026 roku wersja 8.1 nie otrzymuje już niczego, a 8.2 jeszcze do końca 2026 roku.
- Aktualizacja psuje przede wszystkim stare wtyczki i motywy; deprecated to ostrzeżenie, a fatal error zatrzymuje stronę.
- Kolejność: zaktualizować wszystko, sprawdzić wtyczki, kopia zapasowa, test w środowisku testowym, przełączenie, natychmiastowa kontrola.
- Jeśli coś pójdzie nie tak, proszę przywrócić starą wersję, znaleźć winowajcę w logu błędów i rozwiązać problem; proszę nie pozostawać na starej wersji na dłużej.
- U wielu hosterów wersja dotyczy całego pakietu; proszę uporządkować stare strony.
Quiz
Zadanie
Zadanie A8.4: Czy wersja PHP jest jeszcze wspierana? Proszę sprawdzić w Narzędzia > Stan witryny (zakładka Informacje, Serwer), jakiej wersji PHP używa Państwa strona, i wprowadzić ją wraz z domeną. Program porówna wersję z listą wspieranych wersji z php.net: zielony przy aktywnym wsparciu, pomarańczowy przy wsparciu ograniczonym do bezpieczeństwa, czerwony gdy nie ma już żadnych aktualizacji. Jeśli serwer ujawnia wersję w nagłówku X-Powered-By, program sprawdzi też, czy jest ona zgodna z tym, co Państwo wpisali (i poinformuje, że lepiej ukryć ten nagłówek, lekcja 7.4).
Zadanie D8.4: Plan aktualizacji. Proszę napisać plan aktualizacji swojej strony do najnowszej wersji PHP oferowanej przez hostera. Proszę uwzględnić: obecną i docelową wersję, jakie mają Państwo wtyczki i motywy oraz czy obsługują wersję docelową (z podaniem źródła tej informacji), gdzie będą Państwo testować (środowisko testowe, inny pakiet, lokalnie), jak można wrócić do poprzedniej wersji oraz kiedy to zrobią. Proszę wykonać plan, jeśli to możliwe, i zapisać, co pojawiło się w logu błędów.
Zadanie D8.4: Plan aktualizacji
To zadanie wykonuje się samodzielnie, nikt go nie sprawdza. Prosimy zaznaczyć wykonane punkty i oznaczyć zadanie jako wykonane.
Proszę wybrać wersję docelową z aktywnym wsparciem (lub przynajmniej wciąż otrzymującą aktualizacje bezpieczeństwa) i podać dla każdej wtyczki źródło (strona wtyczki, dziennik zmian, Diagnoza strony).
Zaznaczenia i notatki pozostają tylko w tej przeglądarce; nie są nigdzie wysyłane. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało wykonane.
Więcej informacji
Poniższe artykuły opisują kroki w panelach WebOké; w innych panelach działa to podobnie.
- Instrukcja DirectAdmin 14.1: Wybór wersji PHP (Select PHP version)
- Instrukcja DirectAdmin 14.6: Błędy po aktualizacji PHP i znajdowanie logu błędów
- Zmiana wersji PHP i ustawień PHP (oraz co zrobić w przypadku błędów po aktualizacji)
- Instrukcja DirectAdmin 14.2: Włączanie i wyłączanie rozszerzeń PHP
- Podręcznik WebOké 6.11: Zlecenie aktualizacji PHP
- Wspierane wersje PHP (php.net, po angielsku): https://www.php.net/supported-versions.php
- PHP a wersje WordPressa (make.wordpress.org, po angielsku): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
