Обновление PHP 7.2 до версии 7.3 на Ubuntu сервере с NGINX

Введение

В данной статье будет рассмотрен процесс обновления PHP 7.2 до версии 7.3 на Ubuntu сервере с NGINX. Ниже приведенные инструкции также применимы к переходу с более ранних 7.x версий.

Подготовка

Для начала сделайте бекап PHP конфигов. Для этого выполните в консоли:

$ cd /etc/php

$ sudo tar -cJf ~/php-7.2-backup.tar.xz 7.2

Прежде, чем устанавливать новые версии пакетов, нужно узнать какие именно php-пакеты необходимо установить. Чтобы увидеть, какие php-пакеты установлены на данный момент, выполните в консоли:

$ sudo apt list --installed | grep php7.2

Можно сразу сохранить вывод в файл:

$ sudo apt list --installed | grep php7.2 > php72_packages.txt

Если вы устанавливали PHP из репозитория Ubuntu, тогда добавьте PPA репозиторий:

$ sudo add-apt-repository ppa:ondrej/php

$ sudo apt-get update

Если данный репозиторий у вас уже добавлен, тогда просто выполняйте:

$ sudo apt update

Установка

Установите новые версии PHP-пакетов:

$ sudo apt install php7.3-cli php7.3-common php7.3-curl php7.3-fpm php7.3-gd php7.3-json php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-readline php7.3-xml php7.3-xmlrpc

Настройка

Скопируйте старый php.ini в новую директорию:

$ sudo cp /etc/php/7.2/fpm/php.ini /etc/php/7.3/fpm/php.ini

или сделайте изменения вручную, затем перезапустите сервис php7.3-fpm

$ sudo systemctl restart php7.3-fpm.service

PHP FPM настроен, но NGINX еще использует старую версию PHP.

В файле

$ /etc/nginx/conf.d/app_name.conf

укажите NGINX использовать сокет для PHP 7.3.

Замените

unix:/var/run/php/php7.2-fpm.sock

на

unix:/var/run/php/php7.3-fpm.sock

и перезапустите сервис nginx:

$ sudo systemctl restart nginx.service

Если для каких-то PHP приложений нужна старая версия PHP, то просто не меняйте путь для FPM сокета в конфиге NGINX. Таким образом, можно одновременно использовать обе версии PHP.

Удаление старой версии

Если старая версия по-прежнему будет использоваться – пропустите этот шаг.

Осталось только удалить старые пакеты (вместе с конфигами), относящиеся к PHP 7.2:

$ sudo apt purge php7.2-common

Можно не перечислять все пакеты, а указать только один (остальные пакеты удалятся автоматически).

Если после удаления пакетов, директория /etc/php/7.2 не удалилась - удалите ее сами:

$ sudo rm -r /etc/php/7.2

Заключение

На этом все. Новая минорная версия PHP установлена и настроена.

Категории