Имеем сервер на Ubuntu 22.04, на котором крутится CMF Drupal. Веб-сервер Nginx. И есть PHP 8.1.

Случается страшное, прилетает новость о новой уязвимости:
🐘 PHP — критическая уязвимость
PHP 8.1 больше нельзя использовать, нужно обновиться хотя бы на 8.2.35. Можно было бы и новее, но я не уверен что Drupal с его версией потянет.
Посмотрим что у нас за пакеты:
dpkg -l | grep php
У меня даже есть старая инструкция, как PHP ставилось. Там была команда:
apt install php8.1-fpm php-mysql php-xml php-gd php-curl php-mbstringDrupal 9 — установка на Nginx в Ubuntu 22
PHP 8.2 в Ubuntu 22 отсутствует, нужно добавить репозиторий.
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt updateНачинаем ставить PHP 8.2:
apt install php8.2-fpm
apt install php8.2-mysql
apt install php8.2-xml
apt install php8.2-gd
apt install php8.2-curl
apt install php8.2-mbstringЭти пакеты установились без проблем.
Мне ещё понадобился php-uploadprogress, поставился версии 8.5.
Меняем текущую версию PHP:
update-alternatives --config phpПроверяем версию:
php -vТеперь нужно поправить версию в конфигурационных файлах nginx. Поищем:
grep -rn "fastcgi_pass" /etc/nginx/В найденных файлах правим версию.
Запускаем php8.2-fpm:
systemctl enable --now php8.2-fpm
ls -l /run/php/php8.2-fpm.sockОстанавливаем php8.1-fpm:
systemctl stop php8.1-fpm
systemctl disable php8.1-fpmПерезапускаем Nginx:
service nginx restart
systemctl status php8.2-fpmТеперь нужно разораться с PHP.ini. Найдём отличия:
diff /etc/php/8.1/fpm/php.ini /etc/php/8.2/fpm/php.iniУ меня есть изменения. А темерь, чтобы не править сам файл, я выложу изменённые параметры в отдельный файл:
nano /etc/php/8.2/fpm/conf.d/99-custom.iniПерезапускаем php8.2-fpm:
systemctl restart php8.2-fpmВсё заработало.