Коротко
На Ubuntu і Debian виправлення встановлюється звичайним оновленням пакетів: apt update && apt upgrade, потім перезапуск PHP-FPM. Номер версії при цьому не зміниться — перевіряти потрібно журнал змін пакета. Уся процедура займає близько двох хвилин і не потребує перезавантаження сервера.
Крок 1. Подивитися, що встановлено
dpkg -l | grep -E 'php[0-9.]+-(fpm|cli|common)'
php -vЗапам'ятайте номер версії пакета — за ним ви переконаєтеся, що оновлення пройшло.
Крок 2. Оновити пакети
sudo apt update
sudo apt install --only-upgrade 'php8.*'Якщо PHP встановлювався зі стороннього репозиторію (ppa:ondrej/php на Ubuntu, packages.sury.org на Debian), спершу оновіть список пакетів цього репозиторію — виправлення туди надходять окремо від основного.
Крок 3. Перезапустити PHP-FPM
Це обов'язковий крок. Робочі процеси PHP-FPM тримають у пам'яті старий код: доки їх не перезапустити, сервер лишається вразливим, хоча файли на диску вже нові.
sudo systemctl restart php8.3-fpm
systemctl status php8.3-fpm --no-pagerПідставте свою версію замість 8.3. Якщо у вас кілька версій PHP, перезапустіть кожну:
systemctl list-units 'php*-fpm*' --no-legend | awk '{print $1}' | xargs -r sudo systemctl restartУ разі використання mod_php замість FPM перезапускається вебсервер: sudo systemctl restart apache2.
Крок 4. Перевірити результат
zgrep -m1 'CVE-2026-109618' /usr/share/doc/php8.3-fpm/changelog.Debian.gz
dpkg -l | grep php8.3-fpmПерша команда має вивести рядок із номером вразливості. Для Ubuntu 24.04 виправлена версія пакета — 8.3.6-0ubuntu0.24.04.13 або новіша.
Чому номер версії не змінився
Ubuntu і Debian підтримують одну версію PHP протягом усього терміну життя випуску системи та переносять у неї виправлення безпеки з нових версій. Це називається бекпортом. Тому php -v на виправленому сервері, як і раніше, показує 8.3.6, хоча вразливості закрито. Єдина надійна ознака — версія пакета та його журнал змін.
Якщо PHP зібрано вручну
PHP, зібраний із вихідного коду, оновлень не отримує. Завантажте 8.3.36 (або 8.4.27, 8.5.12 для своїх гілок) з php.net, зберіть із тими самими параметрами, що й раніше — переглянути їх можна командою php -i | grep "Configure Command" — і перезапустіть служби.
Часті запитання
Чи потрібне перезавантаження сервера?
Ні, достатньо перезапустити PHP-FPM і вебсервер.
Що буде із сайтами під час оновлення?
Перезапуск PHP-FPM займає соті частки секунди. Запити в цей момент можуть отримати помилку 502, тому на навантажених майданчиках використовуйте systemctl reload там, де його підтримано, або виводьте сервер із балансування на час перезапуску.
Як оновити одразу багато серверів?
Зберіть список версій однією командою по SSH і оновлюйте пачкою — приклад скрипта є в нашій статті про аудит парку серверів.