PHP 8.4 — это значительное обновление языка PHP, содержащее множество новых функций и оптимизаций. Однако Ubuntu 24.04 LTS включает в свои официальные репозитории только PHP 8.3. В этом руководстве объясняется, как обновить PHP до версии 8.4 и настроить Nginx для его использования.
Предпосылки
- Существующий веб-сайт, работающий с Nginx и PHP 8.3 на сервере Ubuntu 24.04.
- Права пользователя: пользователь root или обычный пользователь с привилегиями sudo
Конвенции
|
|
Обновите систему
Свежая установка Ubuntu 24.04 требует обновления пакетов до последних доступных версий.
|
|
Шаг 1. Список установленных пакетов PHP 8.3
Войдите на сервер как пользователь sudo без полномочий root через SSH.
Перечислите все пакеты PHP 8.3, установленные в вашей системе.
|
|
Вывод выглядит так.
|
|
Второй столбец содержит имена установленных пакетов.
Передайте приведенный выше вывод командам cut
, xargs
и sed
соответственно, чтобы сгенерировать список соответствующих пакетов PHP 8.4.
|
|
Результат выглядит следующим образом:
|
|
Используйте свой вывод при установке PHP 8.4.
Сохраните список существующих модулей PHP-FPM 8.3 в файл:
|
|
Вы будете использовать этот файл, чтобы убедиться, что после обновления все модули отсутствуют.
Шаг 2. Установите PHP 8.4
Вы можете установить PHP 8.4 из репозитория ppa:ondrej/php, разработанного Ондржея Сури, который предоставляет последние стабильные версии PHP для систем Ubuntu и Debian.
Добавьте репозиторий ppa:ondrej/php
.
|
|
Обновите индекс пакета.
|
|
Смоделируйте установку пакетов PHP 8.4, используя список, созданный в предыдущем разделе.
|
|
Установите пакеты PHP 8.4 с уточненным списком. Обратите внимание, что команда установки не содержит опции --simulate
.
|
|
Сохраните список текущих модулей PHP-FPM 8.4 в файл.
|
|
Сравните существующие модули PHP-FPM 8.3 с текущими модулями PHP-FPM 8.4.
|
|
Если вы получаете пустой вывод, это означает, что после обновления не пропало ни одного модуля.
Убедитесь, что версия PHP по умолчанию в режиме командной строки — 8.4.
|
|
Шаг 3. Настройте Nginx
Nginx и PHP-FPM 8.3 взаимодействуют друг с другом через сокет, созданный PHP-FPM 8.3. Поэтому, чтобы переключиться на PHP-FPM 8.4, вам нужно настроить новый сокет для PHP-FPM 8.4 и перенастроить Nginx с этим сокетом.
Найдите сокет, созданный PHP-FPM 8.3, и файл конфигурации Nginx, который использует этот сокет.
|
|
Если это сокет Unix, вывод будет выглядеть так:
|
|
Если это сокет TCP, вывод будет выглядеть так:
|
|
В обоих случаях /etc/nginx/sites-available/default
— это файл конфигурации Nginx, который вам нужно отредактировать, а /var/run/php/php8.3-fpm.sock
или 127.0.0.1:9000
— это сокет.
У вас может быть другое имя файла или более одного имени файла. Замените default
в следующей команде файлами, найденными в вашей системе.
Создайте резервную папку для хранения файла конфигурации перед редактированием.
|
|
Скопируйте все файлы конфигурации в резервную папку.
|
|
Отредактируйте файл конфигурации, заменив старый сокет новым.
- Если старым сокетом является
/var/run/php/php8.3-fpm.sock
, новым должен быть/var/run/php/php8.4-fpm.sock
.
|
|
- Если старый сокет — 127.0.0.1:9000, то новый должен быть 127.0.0.1:9001.
|
|
Проверьте новую конфигурацию.
|
|
Перед применением новой конфигурации вам необходимо выполнить следующий раздел для настройки PHP 8.4.
Шаг 4. Настройте PHP 8.4
Удалите конфигурацию рабочего пула PHP 8.4 по умолчанию.
|
|
Скопируйте конфигурацию из PHP-FPM 8.3 в PHP-FPM 8.4.
|
|
Найдите файл конфигурации, содержащий определение старого сокета.
- Если старый сокет
/var/run/php/php8.3-fpm.sock
:
|
|
- Если старый сокет
127.0.0.1:9000
:
|
|
В обоих случаях результаты одинаковы, примерно так:
|
|
Отредактируйте файл конфигурации, заменив старый сокет новым.
- Если старый сокет
/var/run/php/php8.3-fpm.sock
:
|
|
- Если старый сокет
127.0.0.1:9000
:
|
|
Вам также может понадобиться настроить некоторые параметры в основном файле конфигурации PHP 8.4, чтобы они соответствовали требованиям вашего веб-сайта. Общие настройки для большинства веб-сайтов PHP:
|
|
Вы можете найти необходимые настройки в основном файле конфигурации PHP 8.3 /etc/php/8.3/fpm/php.ini
, а затем скопировать эти настройки в основной файл конфигурации PHP 8.4 /etc/php/8.4/fpm/php.ini
.
Проверьте новую конфигурацию.
|
|
Перезагрузите службу PHP-FPM 8.4, чтобы применить изменения.
|
|
Перезагрузите службу Nginx, чтобы ваш сайт работал с PHP 8.4 вместо 8.3.
|
|
Отключите службу PHP-FPM 8.3.
|
|
Шаг 5. Проверьте установку
Откройте свой сайт в браузере. Протестируйте и убедитесь, что все функции работают должным образом.
Если вы решили удалить PHP 8.3, сделайте следующее.
Удалите папку резервной копии Nginx.
|
|
Удалите все пакеты PHP 8.3.
|
|
Завершение
Если вам понравился этот пост о том, как обновить PHP 8.3 до 8.4 на Ubuntu 24.04, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.