Перейти к основному содержанию

Обновление PHP на Ubuntu 22

Ubuntu

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

php

Случается страшное, прилетает новость о новой уязвимости:

🐘 PHP — критическая уязвимость

PHP 8.1 больше нельзя использовать, нужно обновиться хотя бы на 8.2.35. Можно было бы и новее, но я не уверен что Drupal с его версией потянет.

Посмотрим что у нас за пакеты:

dpkg -l | grep php
php

У меня даже есть старая инструкция, как PHP ставилось. Там была команда:

apt install php8.1-fpm php-mysql php-xml php-gd php-curl php-mbstring

Drupal 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

Всё заработало.

Теги

 

Похожие материалы

Drupal 8/9 — PHP код на странице

В drupal 8 и 9 выпилили возможность вставить PHP код на страницу. С одной стороны это правильно и безопасно, с другой стороны — иногда нужно. Для того чтобы вернуть возможность вставить PHP потребуется установить расширение.

Теги