Часто возникают задачи установить необходимую версию php, а по умолчанию устанавливается более новая или старая. Также бывает необходимо установить и одновременно работать с двумя версиями php на одном сервере.
По умолчанию мы производим установку от пользователя root, если у Вас обычный используйте sudo.
1. Установим необходимые репозитории:
apt update
apt upgrade
apt install -y apt-transport-https lsb-release ca-certificates wget
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
apt update
2. Если нам нужна версия php 8.2 выполним ее установку:
apt install php8.2
2.1 Для установки php 8.1 выполним установку:
apt install php8.1
2.2 Для установки php 7.4 выполним установку:
apt install php7.4
2.3 Для установки php 7.3 выполним установку:
apt install php7.3
И так далее, при этом все версии будут одновременно доступны для работы на сервере, для каждой php версии необходимо устанавливать свои модули, а также править конфигурационный файл при необходимости.
Несколько одновременно установленных php позволяет работать с несколькими проектами в случае разных требований. Для каждой php Вы можете установить свой php-fpm и указать по аналогии на каком порту он будет работать и указать данные параметры в конфигурационном файле nginx.
3. Пример установки php-fpm и php модулей для php 8.2:
apt install php8.2 php8.2-gd
3.1 Пример установки php-fpm и php модулей для php 8.1:
apt install php8.1 php8.1-gd
4. Для проверки версии, а также использования планировщика используйте путь для каждой из версий:
/usr/bin/php8.2 /var/www/domain.tld/cron-file.php
или
/usr/bin/php8.1 /var/www/domain.tld/cron-file.php
5. При наличии нескольких версий php, чтобы переключать версию по умолчанию, используйте следующую команду:
update-alternatives --set php /usr/bin/php8.1