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, пожалуйста, поделитесь им со своими друзьями в социальных сетях, которым может быть интересна эта статья или оставьте комментарий ниже.