Установка PHP 5.6, 7.0, 7.1, 7.2 одновременно в Debian 9 Stretch / Deepin 15

Всем привет. В этой  статье я расскажу как использовать несколько версий PHP параллельно в Debian 9.
Если вы пользователь вышеупомянутой то вам наверно знаете, что в базовой комплектации системы вы имеете возможность установить только PHP 7.0 и не более. Но если вам вдруг понадобится использовать несколько версий PHP одновременно, то эта статья для Вас.

Данная статья подразумевает что у вас уже установлен Web Server Apache 2 или Nginx
Если нет, то самое время это сделать:

Apache2

sudo apt install apache2

Nginx

apt-get install nginx

Итак, с вебсерверами покончено, приступаем к установке PHP.
Для того, чтобы иметь возмозможность установить несколько версий одновременно, переходим к руту командой sudo su и выполним в терминале следующие команды:

sudo apt install ca-certificates apt-transport-https 
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list

Теперь устанавливаем требуемые нам версии. Данная команда установит PHP5.6, PHP7.0, PHP7.1, PHP7.2:

sudo apt install php5.6 php7.0 php7.1 php7.2

Если какая-то из версий вам не нужна, вы можете просто не устанавливать соответствующий пакет. В любом случае теперь вы имеетe возможность установить каждую из версий не сейчас а в будущем, если она Вам вдруг понадобится.
Как же теперь всем этим пользоваться? Очень просто:
После установки у нас по умолчанию начнет работать PHP7.2, в приоритете самая крайняя версия. Если ввести в терминале команду php -v то увидим следующий вывод:

andrey@debian:~$ php -v
PHP 7.2.2-1+0~20180205160742.18+stretch~1.gbpb78b58 (cli) (built: Feb  5 2018 16:07:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.2-1+0~20180205160742.18+stretch~1.gbpb78b58, Copyright (c) 1999-2018, by Zend Technologies

Переключать версии можно очень просто используя команду

sudo update-alternatives --config php

Запуск этой команды вызовет меню в терминале в котором вам нужно будет указать ту версию PHP которую вы хотите сейчас использовать в CLI или на Web сервера вашего окружения. Выглядит это так:

andrey@debian:~$ sudo update-alternatives --config php
There are 4 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.2   72        auto mode
  1            /usr/bin/php5.6   56        manual mode
  2            /usr/bin/php7.0   70        manual mode
  3            /usr/bin/php7.1   71        manual mode
  4            /usr/bin/php7.2   72        manual mode

Press <enter> to keep the current choice[*], or type selection number:

В моем случаем мне сейчас необходима версия PHP 5.6, для того, чтобы протестировать требуемые мне фичи проекта.
В данном меню я просто нажимаю на клавиатуре цифру 1 и enter. После успешного сообщения если я наберу php -v в терминале, то вывод мне скажет что у меня  установлена версия PHP5.6  по умолчанию, следовательно все команды типа php -f somefile.php будут выполнятся от имени версии 5,6

Собственно вот и вся магия. Debian 9 не так уж плох в данном вопросе 🙂

Кстати, как установить родной MySQL Server в Debian 9,  я описал в этой статье Установка MySQL Server в Debian 9 Stretch
Если у Вас будут коментарии или замечания к статье, обязательно сообщите об этом в комментариях. Будем разбираться.
Удачного кодинга.

3 комментария к “Установка PHP 5.6, 7.0, 7.1, 7.2 одновременно в Debian 9 Stretch / Deepin 15”

  1. Успешно и быстро установил PHP 7.1 который мне и нужен был. Спасибо

  2. Подскажите, а как настроить NGINX, чтобы одновременно на одном сервере работали разные сайты с разным PHP ?

Оставьте комментарий

%d такие блоггеры, как: