Чтобы установить репозиторий, нужно от супер-пользователя выполнить следующие действия:
apt-get install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ jessie main" > /etc/apt/sources.list.d/php.list
apt-get update
После этого будут доступны пакеты php5.6-xxx и php7.1-xxx. Стандартные дебиановские пакеты php5-xxx также будут доступны, но их лучше удалить, чтобы не было конфликтов. Сделать это можно одной командой:
apt-get purge 'php.*'
Выбираем только одну версию php, которую и будем ставить. Установленные сразу две могут конфликтовать друг с другом. У меня именно так и было. Выполняем следующие команды установки:
# Установка PHP 5.6
apt-get install php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-intl php5.6-json php5.6-mbstring php5.6-mcrypt php5.6-pdo-mysql php5.6-xml php5.6-zip
# Установка PHP 7.1
apt-get install php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-pdo-mysql php7.1-xml php7.1-zip
Установка дополнительных пакетов для работы с изображениями для php 5.6
apt-get install imagemagick php5.6-imagick
Или установка дополнительных пакетов для работы с изображениями для php 7.1
apt-get install imagemagick php7.1-imagick
Установка модуля для apache, чтобы он "подцепил" php. Для версии php 5.6:
apt-get install libapache2-mod-php5.6
Или установка модуля для apache, чтобы он "подцепил" php. Для версии php 7.1:
apt-get install libapache2-mod-php7.1
При этом в папке php появится дополнительный каталог с конфигурационными файлами php но для работы через апач.
Включаем поддержку php5.6 в apache
a2enmod php5.6
Или включаем поддержку php7.1 в apache
a2enmod php7.1
Выполняем следующую команду:
apt-get install nginx
Теперь отключаем дефолтный конфиг и подключаем папку /www:
unlink /etc/nginx/sites-enabled/default
echo 'include /www*/*/conf/nginx.conf;' > /etc/nginx/sites-enabled/www
Создаём папки, необходимые для работы:
mkdir -p /www/default/docs /www/default/logs /www/default/conf
Добавляем конфиг /www/default/conf/nginx.conf:
server {
listen *:80 default_server;
server_name default;
root /www/default/docs;
access_log /www/default/logs/access.log;
error_log /www/default/logs/error.log;
set $phpini "
error_log=/www/default/logs/php-errors.log
";
index index.php index.html;
location ~ ^(.*\.php)$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php5.6-fpm.sock;
if ($arg_php7) {
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
fastcgi_param PHP_VALUE "$phpini";
fastcgi_param SCRIPT_FILENAME $document_root$1;
}
}
Перезапускаем nginx:
service nginx reload
Создаём /www/default/docs/index.php:
echo '<?php phpinfo();' > /www/default/docs/index.php
Проверяем результат:
> wget -qO- 'http://localhost/' | grep -oE 'PHP Version [0-9\.]+' PHP Version 5.6.30 > wget -qO- 'http://localhost/?php7=1' | grep -oE 'PHP Version [0-9\.]+' PHP Version 7.1.4
источник: https://anton-pribora.ru/articles/nginx/debian-php5_6-and-php7_1/