
Разные проекты могут требовать различные версии PHP: одни фреймворки оптимизированы под PHP 7.4, другие используют возможности PHP 8.2. В Ubuntu можно быстро переключаться между установленными версиями, что особенно важно при работе с несколькими приложениями на одном сервере.
Для начала стоит убедиться, какие версии PHP доступны в системе. Это можно сделать с помощью команды php -v и проверки установленных пакетов через apt list —installed | grep php. Если нужной версии нет, её можно добавить из репозитория ppa:ondrej/php, который содержит актуальные сборки.
После установки нескольких версий PHP необходимо указать, какая из них будет использоваться по умолчанию. Для этого применяется инструмент update-alternatives, позволяющий задать приоритет конкретной версии. Аналогичным образом можно настроить работу PHP-FPM, если используется веб-сервер Nginx или Apache.
Проверка установленной версии PHP

Чтобы узнать активную версию PHP в системе, выполните команду:
php -v
Если на сервере установлено несколько версий, уточните, какая используется веб-сервером. Для Apache выполните:
apache2ctl -M | grep php
Для Nginx с PHP-FPM проверьте используемый сокет или порт в файле конфигурации /etc/nginx/sites-enabled/ и сопоставьте его с версией в каталоге /etc/php/.
Также можно посмотреть доступные пакеты PHP в системе командой:
update-alternatives --list php
Это позволит увидеть все установленные версии и понять, какая назначена по умолчанию.
Добавление репозитория с нужной версией PHP

Для установки дополнительных версий PHP в Ubuntu используется PPA-репозиторий от Ondřej Surý. Этот источник содержит актуальные сборки для большинства поддерживаемых релизов системы.
Сначала обновите список пакетов:
sudo apt update
sudo apt install software-properties-common
Добавьте репозиторий:
sudo add-apt-repository ppa:ondrej/php
После подключения репозитория обновите кэш пакетов, чтобы получить доступ к новым версиям PHP:
sudo apt update
Теперь можно установить нужный выпуск PHP, например PHP 8.2:
sudo apt install php8.2
Установка выбранной версии PHP через apt

Для начала добавьте репозиторий с актуальными пакетами PHP:
sudo add-apt-repository ppa:ondrej/php -y
Обновите список пакетов:
sudo apt update
Установите нужную версию PHP, указав её номер, например 8.2:
sudo apt install php8.2 php8.2-cli php8.2-common php8.2-mysql php8.2-xml php8.2-mbstring -y
Проверьте установленную версию:
php -v
При наличии нескольких версий переключение выполняется через:
sudo update-alternatives --config php
Переключение версии PHP с помощью update-alternatives

В Ubuntu можно установить несколько версий PHP параллельно и выбрать активную через систему update-alternatives. Это позволяет быстро переключаться между версиями без удаления пакетов.
- Убедитесь, что установлены нужные версии PHP:
sudo apt install php7.4 php8.1 - Добавьте их в систему альтернатив:
sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74 sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.1 81 - Проверьте список доступных вариантов:
sudo update-alternatives --config php - Выберите нужный номер версии из предложенного списка.
Чтобы переключить интерпретатор PHP для phpize и phar, настройте их аналогично:
sudo update-alternatives --config phpizesudo update-alternatives --config phar
Текущая версия PHP определяется командой:
php -v
Настройка Apache или Nginx для работы с новой версией
Для Apache убедитесь, что загружен нужный модуль PHP. Отключите старый:
sudo a2dismod php7.4
и активируйте новый:
sudo a2enmod php8.2
Затем выполните sudo systemctl restart apache2, чтобы изменения вступили в силу.
Для Nginx требуется настройка php-fpm. Проверьте установленную версию:
ls /etc/php/ | grep fpm
В файле конфигурации сайта (обычно /etc/nginx/sites-available/имя_сайта) замените строку:
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
на:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
После сохранения конфигурации выполните:
sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx
Проверьте активный процесс через ps aux | grep php-fpm или php -v, чтобы убедиться, что используется правильная версия.
Проверка работы приложений после смены версии PHP

После переключения версии PHP необходимо проверить совместимость ваших веб-приложений и скриптов с новой версией интерпретатора. Начните с проверки командой:
php -v
Она подтверждает, что система использует нужную версию PHP. Далее проверьте загруженные модули:
php -m
Обратите внимание на наличие критически важных расширений, таких как mysqli, gd, curl, mbstring, которые требуются вашим приложениям.
Для тестирования веб-приложений создайте отдельный PHP-файл с функцией phpinfo():
<?php phpinfo(); ?>
Откройте его в браузере, убедитесь, что отображается корректная версия PHP и активные расширения.
Проверка работы скриптов должна включать ключевые функции, например обработку форм, подключение к базе данных и отправку почты. Для систем на CMS выполните следующие шаги:
| Действие | Команда или проверка | Цель |
|---|---|---|
| Проверка консольных скриптов | php /путь/к/скрипту.php |
Выявление ошибок совместимости с новой версией PHP |
| Проверка веб-части приложения | Открытие ключевых страниц в браузере | Контроль корректного отображения и функционала |
| Проверка журналов ошибок | tail -f /var/log/apache2/error.log |
Фиксация ошибок и предупреждений после обновления PHP |
| Тестирование баз данных | Выполнение запросов через PHP-скрипт | Проверка работы драйверов и совместимости SQL-запросов |
| Проверка кэширования | Очистка кэша и повторный запуск страниц | Подтверждение работы OPCache или других механизмов кэширования |
Если при тестировании обнаружены ошибки, проанализируйте логи и сравните их с документацией PHP для вашей версии. Особенно важно проверять устаревшие функции и методы, которые могли быть удалены или изменены.
После успешного тестирования рекомендуется выполнить резервное копирование настроек и базы данных перед вводом версии PHP в продуктивную эксплуатацию.
Вопрос-ответ:
Как проверить текущую версию PHP на Ubuntu?
Чтобы узнать, какая версия PHP установлена в системе, можно использовать команду `php -v` в терминале. Она выведет номер версии и дополнительную информацию о сборке. Если на сервере установлено несколько версий PHP, стоит проверить, какая активна для веб-сервера, например, через `phpinfo()` в скрипте или команду `update-alternatives —display php`.
Можно ли установить несколько версий PHP одновременно на Ubuntu?
Да, на Ubuntu можно устанавливать несколько версий PHP параллельно. Для этого используют пакеты с номерами версий, например `php7.4`, `php8.1`. После установки разных версий переключение между ними выполняется с помощью команды `update-alternatives —config php`, где можно выбрать активную версию для командной строки. Для веб-сервера Apache или Nginx потребуется настроить соответствующий модуль или сокет.
Как изменить версию PHP для Apache на Ubuntu?
Если установлен Apache, переключение версии PHP выполняется через команды `a2dismod phpX.X` для отключения текущей версии и `a2enmod phpY.Y` для включения новой. После этого нужно перезапустить сервер командой `sudo systemctl restart apache2`. Также важно проверить, что выбранная версия PHP корректно связана с Apache, иначе могут возникнуть ошибки при загрузке сайтов.
Что делать, если после смены версии PHP сайты начинают выдавать ошибки?
Чаще всего ошибки возникают из-за несовместимости кода или отсутствующих расширений. Необходимо убедиться, что нужные модули PHP установлены для новой версии, например `php-mysql`, `php-curl` и т.д. Проверить доступные модули можно командой `php -m`. Также стоит просмотреть журналы веб-сервера (`/var/log/apache2/error.log` или `/var/log/nginx/error.log`) для точного определения причины.
Как сменить версию PHP для командной строки отдельно от веб-сервера?
Для переключения версии PHP в терминале используют `update-alternatives`. Команда `sudo update-alternatives —config php` покажет список установленных версий, и можно выбрать нужную. Это изменение не затрагивает веб-сервер, поэтому сайты будут продолжать работать на той версии PHP, которая настроена для сервера. Такой подход удобен, если нужно тестировать скрипты под разными версиями.
Как проверить текущую версию PHP в Ubuntu?
Для проверки версии PHP откройте терминал и выполните команду php -v. В выводе будет указана версия PHP, установленная в системе, например, «PHP 8.1.2». Если установлено несколько версий, можно использовать команду update-alternatives --display php для отображения всех доступных вариантов и их приоритетов.
Как сменить версию PHP для Apache на Ubuntu?
Сначала убедитесь, что нужная версия PHP установлена с помощью пакета sudo apt install phpX.X, где X.X — версия PHP. После этого переключите версию для Apache командой sudo a2dismod phpY.Y для отключения старой версии и sudo a2enmod phpX.X для включения новой. Затем перезапустите Apache: sudo systemctl restart apache2. Чтобы убедиться в изменении, можно создать файл info.php с кодом <?php phpinfo(); ?> и открыть его в браузере, где будет отображена активная версия PHP.
