Установка разных версий PHP на Linux Debian

В Debian можно легко управлять несколькими версиями PHP. Мы рассмотрим процесс установки разных версий пакетов и управления ими.
Установка PHP
В зависимости от необходимой версии PHP и версии Debian, подход к установке может отличаться.
Установка базовой версии
Это самый простой способ. Каждая версия Debian в своем репозитории содержит соответствующую версию PHP.
Установка выполняется одной командой:
apt install php
Установка определенной версии
Если нам необходима версия PHP, которой нет в репозитории сисемы, выполняем установку дополнительного — sury.org.
Сначала установим следующие пакеты:
apt install lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
* где:
- lsb-release — для определения версии релиза операционной системы.
- ca-certificates — набор корневых сертификатов.
- apt-transport-https — дополнение для возможности использовать репозитории по https.
- software-properties-common — утилита для работы с репозиториями.
- gnupg2 — для шифровки и дешифровки цифровых подписей. Нужна для работы с репозиториями.
Установим gpg ключ репозитория sury.org:
wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
Создадим конфигурационный файл с настройкой репозитория sury.org:
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
Обновим список пакетов:
apt update
Теперь можно установить нужную версию интерпретатора:
apt-get install php7.4
apt-get install php8.1
* в данном примере 7.4 и 8.1.
Выбор версии PHP по умолчанию
Посмотреть текущую версию php, которая работает по умолчанию можно командой:
php -v
Сменить версию по умолчанию:
update-alternatives --config php
Если увидим сообщение:
...
Nothing to configure.Значит у нас установлена всего одна версия PHP.
Мы должны увидеть что-то на подобие:
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.1 81 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.1 81 manual mode
* в данном примере используется версия php8 как версия по умолчанию.
Для смены, система предложит нам выбрать версию из списка:
Press <enter> to keep the current choice[*], or type selection number: 1
* так мы переключимся на php7.4.
Установка расширений
Расширения устанавливаются с синтаксисом:
apt install php<версия>-<расширение>
Для версии, которая идет по умолчанию в репозитории, установку можно выполнить так:
apt install php-mysqli
В остальных случаях обязательно указываем версию:
apt install php7.4-mysqli
Настройка PHP
В Ubuntu настройки PHP находятся в разных файлах — для каждой версии и для каждой системы, которая обрабатывает запросы.
Например, для php версии 8.1, которая будет запускаться из командной строки, файл будет:
vi /etc/php/8.1/cli/php.ini
для apache:
vi /etc/php/8.1/apache2/php.ini
для fpm:
vi /etc/php/8.1/fpm/php.ini