До основного вмісту

Як оновити PHP на AlmaLinux, Rocky і RHEL після PHP2Shell

PHP · 27.10.2026 · 2 хв читання

Коротко

На AlmaLinux, Rocky Linux і RHEL виправлення встановлюється командою dnf update php* з наступним перезапуском php-fpm. Якщо PHP встановлено з репозиторію Remi, оновлювати потрібно його модуль. Перевіряти результат слід за журналом змін пакета, а не за виводом php -v.

Крок 1. Визначити, звідки встановлено PHP

rpm -q php-fpm php-cli
dnf module list php --enabled

Якщо в назві пакета трапляється remi, PHP прийшов із репозиторію Remi. Якщо модуль увімкнено як php:8.3, використовується потік модулів самого дистрибутива.

Крок 2. Оновлення

Для пакетів дистрибутива:

sudo dnf clean all
sudo dnf update php php-fpm php-cli php-common

Для Remi зручніше оновити всі пакети PHP одразу:

sudo dnf update 'php*'

Якщо ви переходите на новий потік модулів (наприклад, з 8.2 на 8.3), спершу скиньте поточний:

sudo dnf module reset php
sudo dnf module enable php:8.3
sudo dnf distro-sync 'php*'

Крок 3. Перезапуск

sudo systemctl restart php-fpm
systemctl status php-fpm --no-pager

Без перезапуску робочі процеси продовжать виконувати старий код, і сервер залишиться вразливим.

Крок 4. Перевірка

rpm -q --changelog php-cli | grep -m2 -E 'CVE-2026-109618|CVE-2026-109619'
rpm -q php-fpm

Якщо рядки з номерами вразливостей знайшлися — виправлення на місці.

Особливість SELinux

Після оновлення пакетів політика SELinux не змінюється, але якщо ви правили шляхи до сокетів PHP-FPM вручну, перевірте, що служба піднялася без відмов:

sudo ausearch -m avc -ts recent | tail -20

Якщо PHP у контейнері або на панелі

Оновлення пакетів на хост-системі не торкається PHP усередині контейнерів: образ потрібно зібрати заново. Панелі керування оновлюють свої збірки PHP власними засобами. Про це — в окремих статтях.

Часті запитання

Чому dnf каже, що оновлень немає?

Імовірно, кеш метаданих застарів. Виконайте sudo dnf clean all і повторіть. Якщо репозиторій Remi вимкнено, пакети звідти не оновлюватимуться.

Чи потрібно перезапускати nginx?

Ні, nginx спілкується з PHP-FPM через сокет і перезапуску не потребує. Виняток — mod_php під Apache: там перезапускається httpd.

Чи можна оновитися без простою?

Перезапуск php-fpm займає соті частки секунди. На навантажених майданчиках виводьте сервер із балансування або використовуйте systemctl reload php-fpm, якщо ваша збірка його підтримує.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці