Zmiana wersji PHP nie jest wyłącznie zmianą pakietu. Trzeba potwierdzić zgodność kodu i bibliotek, dostępność rozszerzeń, ustawienia puli FPM, konfigurację serwera WWW oraz możliwość bezpiecznego powrotu. Starszą wersję PHP warto traktować jako rozwiązanie przejściowe dla konkretnej aplikacji, a nie jako domyślny wybór dla nowego wdrożenia.
Najpierw rozpoznanie środowiska
Przed instalacją lub przełączeniem sprawdź, jaki system i wersje PHP działają obecnie, które rozszerzenia wykorzystuje aplikacja oraz czy istnieje sprawdzona kopia zapasowa. W środowisku produkcyjnym zaplanuj testy logowania, formularzy, płatności, integracji i zadań cron.
- ustal, które domeny i vhosty mają używać której wersji PHP,
- sprawdź wymagania aplikacji oraz jej moduły PHP,
- sprawdź nazwę rzeczywistego socketu w
/run/php/, - nie przełączaj źródła pakietów ani wersji PHP w trakcie usuwania awarii.
Jedna pula PHP-FPM dla jednego vhosta
Apache przekazuje pliki PHP do PHP-FPM przez FastCGI. Moduły proxy i proxy_fcgi muszą być włączone, a vhost powinien wskazywać socket właściwej puli. Przykład pokazuje ideę konfiguracji. Wartość X.Y należy zastąpić tylko wersją, której socket faktycznie istnieje na serwerze.
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com/public
<FilesMatch "\.php$">
SetHandler "proxy:unix:/run/php/phpX.Y-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
Ten fragment należy umieścić w konkretnym vhoście, a nie w konfiguracji globalnej. Dzięki temu jedna aplikacja może używać innej puli FPM niż pozostałe serwisy na tym samym hoście.
Kontrola przed przeładowaniem usług
Najpierw sprawdź moduły Apache, konfigurację oraz stan właściwej puli. Polecenia diagnostyczne nie zastępują testu aplikacji, ale szybko ujawniają literówkę w socketcie, wyłączony moduł lub niedziałającą usługę.
apachectl -M | grep -E 'proxy(_fcgi)?_module'
apachectl -t
systemctl status phpX.Y-fpm
ls -l /run/php/
Po zmianie obserwuj logi Apache i PHP-FPM oraz sprawdź rzeczywiste funkcje aplikacji. Testowy plik z phpinfo() należy usunąć od razu po weryfikacji.
Repozytorium PHP dobiera się do systemu
Nie warto kopiować starej instrukcji dodawania PPA bez sprawdzenia wydania systemu i obecnej dokumentacji źródła pakietów. Przejście z PPA na inne repozytorium może wymagać osobnego planu: apt nie zawsze wymieni pakiety automatycznie, a część rozszerzeń może mieć inną dostępność. Najpierw sprawdza się politykę pakietów, zależności i plan powrotu.
Więcej o przygotowaniu aktualizacji opisujemy w materiale PHP 8.4 na Debianie. Gdy zmiana obejmuje system, PHP i bazę danych, bezpieczniej potraktować ją jako projekt migracji.
Potrzebujesz wielu wersji PHP na działającym serwerze?
Możemy sprawdzić aplikacje, pule PHP-FPM, vhosty i plan przełączenia. Przy zmianie wymagającej testów wykonujemy ją z kopią, uzgodnionym oknem serwisowym i możliwością powrotu.
Zobacz zakres administracji serwerów →