Обновление 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 установлена и настроена.