2026-09-18
Установка разных версий PHP на Ubuntu и переключение между ними

Установка разных версий PHP на Ubuntu и переключение между ними

В Ubuntu можно держать несколько версий PHP одновременно и переключаться между ними. Разберём установку базовой и дополнительных версий, выбор версии по умолчанию, установку расширений и расположение конфигов.


Установка PHP

Базовая версия

Каждая версия Ubuntu содержит свою версию PHP в репозитории. Посмотреть, какая будет установлена:

apt search --names-only '^php[.0-9]{3}$'
apt install php

Определённая версия

Если нужной версии нет в репозитории, подключаем PPA:

apt install software-properties-common
add-apt-repository ppa:ondrej/php

При ошибке:

FileNotFoundError: [Errno 2] No such file or directory: 'gpg'

устанавливаем:

apt install gnupg-agent

При ошибке:

AttributeError: 'NoneType' object has no attribute 'people'

устанавливаем:

apt install python3-launchpadlib

Устанавливаем нужную версию:

export PHP_VER=8.3
apt install php${PHP_VER}

В примере — версия 8.3.


Выбор версии PHP по умолчанию

php -v

Смена версии по умолчанию:

update-alternatives --config php
There are 2 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php8.3   83        auto mode
  1            /usr/bin/php8.2   82        manual mode
  2            /usr/bin/php8.3   83        manual mode

Press <enter> to keep the current choice[*], or type selection number: 1

Ввод номера переключит версию (в примере — на php8.2).


Установка расширений

Для версии по умолчанию:

apt install php-mysqli

Для конкретной версии:

apt install php8.2-mysqli

Синтаксис: php<версия>-<расширение>.


Настройка PHP

В Ubuntu конфиги PHP разделены по версиям и по способу запуска. Для PHP 8.3:

CLI:

vi /etc/php/8.3/cli/php.ini

Apache:

vi /etc/php/8.3/apache2/php.ini

FPM:

vi /etc/php/8.3/fpm/php.ini

Дополнительные конфиги — в /etc/php/8.3/{cli,fpm,apache2}/conf.d/.


Тонкости и подводные камни

  • PPA ondrej/php — основной источник свежих версий PHP для Ubuntu; поддерживается сообществом.
  • update-alternatives — переключает только CLI-версию; для FPM/Apache версия задаётся отдельными сервисами (php8.2-fpm) и модулем Apache.
  • Несколько FPM-пулов — для разных сайтов можно поднять разные php-fpm и связать их с NGINX/Apache через сокеты.
  • Расширения — для каждой версии ставятся отдельно; php -m показывает модули текущей CLI-версии.
  • gnupg-agent и python3-launchpadlib — частые зависимости для add-apt-repository на минимальных системах.
  • Удаление версииapt purge php8.2* с проверкой, что она не используется сайтами.
  • Обновления безопасности — следите за версиями: старые ветки (7.x) уже EOL и не получают патчей.

Шпаргалка

# базовая
apt install php

# конкретная версия
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt install php8.3

# переключение CLI
update-alternatives --config php

# расширения
apt install php8.3-mysqli php8.3-curl php8.3-mbstring

# конфиги
/etc/php/8.3/{cli,fpm,apache2}/php.ini

Проверено на: Ubuntu 22.04/24.04/26.04 + PHP 8.1–8.4 (PPA ondrej/php).
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *