Image

База знаний → Установка нескольких версий php (7.3, 7.4, 8.1, 8.2) на Debian 12

[Виртуальные сервера]
Дата публикации: 05.10.2023

Часто возникают задачи установить необходимую версию 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




Нет комментариев