Несколько версий PHP на одной машине
Для установки нескольких версий PHP (или какой-то конкретной) на одной машине необходимо добавить репозиторий PHP
add-apt-repository ppa:ondrej/php
Обновить
apt-get update
Установка PHP
Далее с префиксом версии устанавливаем модули
apt install -y php7.4-dev
apt install -y php7.4 libapache2-mod-php7.4 php7.4-mysql
apt install -y php7.4-curl php7.4-json php7.4-cgi
apt install -y php7.4-zip php7.4-mbstring php7.4-xml php7.4-xmlrpc
apt install -y php7.4-redis
# работа с изображениями
apt install -y php7.4-gd
apt install -y php7.4-imagick
или для PHP 8.0
apt install -y php8.0-dev
apt install -y php8.0 libapache2-mod-php8.0 php8.0-mysql
apt install -y php8.0-curl php8.0-json php8.0-cgi
apt install -y php8.0-zip php8.0-mbstring php8.0-xml php8.0-xmlrpc
apt install -y php8.0-redis
# работа с изображениями
apt install -y php8.0-gd
apt install -y php8.0-imagick
Переключиться между версиями
Установленные версии доступны с префиксом.
php8.0
Версии по умолчанию можно сменить на конкретную
sudo update-alternatives --set php /usr/bin/php8.0
или выбрать из имеющихся
sudo update-alternatives --config php
Установка модулей PECL
Для установки модулей PECL в нужной версии PHP должно быть установлено расширение php-dev
Перед установкой необходимо сконфигурировать PECL под нужную версию
#!/bin/bash
# меняем версию PHP
sudo update-alternatives --set php /usr/bin/php8.0
# настраиваем конфигурацию для PECL на нужную версию
sudo pecl config-set php_ini /etc/php/8.0/cli/php.ini
sudo pecl config-set ext_dir /usr/lib/php/20200930/
sudo pecl config-set bin_dir /usr/bin/
sudo pecl config-set php_bin /usr/bin/php8.0
sudo pecl config-set php_suffix 8.0
Установить модуль
sudo pecl install <название модуля>
После установки модуля, необходимо создать файл подключения модуля
/etc/php/8.0/mods-available/mongodb.ini
А внутри пишем
extension=mongodb.so
Можно просмотреть установленные модули pecl
pecl list
Можно удалить модуль
sudo pecl remove <название модуля>
Далее мы можем включать и отключать данный модуль командой
phpenmod mongodb
отключить модуль
phpdismod mongodb
Просмотреть установленные модули
php -m