Несколько версий PHP на одной машине

Опубликовано admin в

Для установки нескольких версий 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

Рубрики: PHP