В Debian можно легко управлять несколькими версиями PHP. Мы рассмотрим процесс установки разных версий пакетов и управления ими.
В зависимости от необходимой версии PHP и версии Debian, подход к установке может отличаться.
Это самый простой способ. Каждая версия Debian в своем репозитории содержит соответствующую версию PHP.
Посмотреть, какая версия будет установлена из репозитория системы можно командой:
apt search —names-only ‘^php[.0-9]{3}$’
Установка выполняется одной командой:
apt install php
Если нам необходима версия PHP, которой нет в репозитории сисемы, выполняем установку дополнительного — sury.org.
Сначала установим следующие пакеты:
apt install lsb-release ca-certificates apt-transport-https software-properties-common gnupg2 curl
* где:
Установим gpg-ключ репозитория sury.org :
curl -sSLo /etc/apt/trusted.gpg.d/deb.sury.su-php.gpg https://packages.sury.su/php/apt.gpg
Создадим конфигурационный файл с настройкой репозитория sury.org:
echo «deb https://packages.sury.su/php/ $(lsb_release -sc) main» > /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 -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-amqp.
Для начала зададим переменную с версией PHP, с которой будем работать:
export PHP_VER=8.1
* так нам будет удобнее вводить команды.
установим пакет php-dev под нужную нам версию PHP:
apt install php${PHP_VER}-dev
Устанавливаем библиотеки, необходимые для расширения:
apt install librabbitmq-dev
* для какого расширения какие библиотеки нужно устанавливать, ориентируясь на документацию самого расширения.
Скачиваем исходник. Источники могут быть разные — конкретно, в нашем примере:
git clone https://github.com/php-amqp/php-amqp.git
Если система вернет ошибку, что git-команда не найдена, выполняем команду:
apt install git
Переходим в каталог с исходником:
cd php-amqp
Запускаем компиляцию расширения:
phpize${PHP_VER}
Конфигурируем исходник:
./configure
Запускаем сборку:
make
Смотрим каталог, где находятся файлы расширений PHP:
php${PHP_VER} -i | grep extension_dir
В моем случае ответ был:
extension_dir => /usr/lib/php/20210902 => /usr/lib/php/20210902
Значит, собранное расширение я буду копировать в каталог /usr/lib/php/20210902 :
cp modules/amqp.so /usr/lib/php/20210902/
Создаем новый конфигурационный файл для расширения:
vi /etc/php/${PHP_VER}/mods-available/amqp.ini
extension=amqp.so
Создаем симлинк на конфигурацию для командной строки PHP:
ln -s /etc/php/${PHP_VER}/mods-available/amqp.ini /etc/php/${PHP_VER}/cli/conf.d/
А также для конфигурации обработчиков.
а) Если используется fpm:
ln -s /etc/php/${PHP_VER}/mods-available/amqp.ini /etc/php/${PHP_VER}/fpm/conf.d/
б) Если используется apache:
ln -s /etc/php/${PHP_VER}/mods-available/amqp.ini /etc/php/${PHP_VER}/apache2/conf.d/
Проверяем, что модуль появился в PHP:
php${PHP_VER} -m
В 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
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…