PHP установка · 11 min read · Nov 04, 2025

Как установить PHP 7.1, 7.2 и 5.6 как PHP-FPM и FastCGI для ISPConfig 3 на Debian 9

Debian 9 поставляется с PHP 7.0 в качестве версии PHP по умолчанию. Основные версии PHP не на 100% совместимы друг с другом, поэтому веб-сайт может требовать более новую или старую версию PHP для работы. ISPConfig поддерживает использование нескольких версий PHP на одном сервере, версия PHP может быть выбрана для каждого веб-сайта индивидуально в настройках веб-сайта. Этот учебник показывает, как установить PHP 7.1, 7.2 и 5.6 в режиме FPM и FCGI наряду с PHP 7.0 на сервере Debian 9. Дополнительные версии PHP устанавливаются в папку /opt, поэтому их установка не влияет на версию PHP по умолчанию.

UPDATE: Рекомендуется устанавливать дополнительные версии PHP на Debian и Ubuntu из пакетов. Учебник можно найти здесь: https://www.howtoforge.com/tutorial/how-to-install-php-7-for-ispconfig-3-from-debian-packages-on-debian-8-and-9/

1 Предварительная заметка

Я установлю PHP 7.1, 7.2 и 5.6. Обратите внимание, что PHP-FPM может использоваться как на серверах Apache, так и на Nginx, в то время как FastCGI доступен только для серверов Apache.

2 Установите предварительные условия

Установите предварительные условия для сборки PHP и редактор nano, который я буду использовать для редактирования конфигурационных файлов:

apt-get install build-essential nano
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-turbo-dev libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include  
ln -s x86_64-linux-gnu/curl

(Последняя команда необходима, если вы собираете PHP с –with-imap, потому что в противном случае ./configure остановится с следующей ошибкой:

checking for crypt in -lcrypt... yes  
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.  
root@server1:/usr/local/src/php5-build/php-7.1.14#

)

3 Скомпилируйте PHP 7.1 как PHP-FPM и Fastcgi

Скачайте и извлеките архив PHP:

mkdir -p /opt/php-7.1  
mkdir /usr/local/src/php7.1-build  
cd /usr/local/src/php7.1-build  
wget http://de2.php.net/get/php-7.1.14.tar.bz2/from/this/mirror -O php-7.1.14.tar.bz2  
tar jxf php-7.1.14.tar.bz2
cd php-7.1.14/

Настройте и соберите PHP 7.1 следующим образом (вы можете настроить команду ./configure в соответствии с вашими потребностями, посмотрите на

./configure --help

чтобы увидеть все доступные параметры; если вы используете другую команду ./configure, возможно, потребуются дополнительные библиотеки, или процесс сборки завершится неудачей):

./configure --prefix=/opt/php-7.1 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

Последний переключатель ( –enable-fpm) гарантирует, что эта версия PHP будет работать с PHP-FPM.

make  
make install

Скопируйте php.ini и php-fpm.conf в правильные места:

cp /usr/local/src/php7.1-build/php-7.1/php.ini-production /opt/php-7.1/lib/php.ini
cp /opt/php-7.1/etc/php-fpm.conf.default /opt/php-7.1/etc/php-fpm.conf  
cp /opt/php-7.1/etc/php-fpm.d/www.conf.default /opt/php-7.1/etc/php-fpm.d/www.conf

Откройте /opt/php-7.1/etc/php-fpm.conf и измените следующую настройку (уберите ; перед строкой pid):

nano /opt/php-7.1/etc/php-fpm.conf
[...]  
pid = run/php-fpm.pid  
[...]  

Затем откройте /opt/php-7.1/etc/php-fpm.d/www.conf и измените строку listen, вы должны использовать неиспользуемый порт (например, 8999; порт 9000 может быть уже занят PHP-FPM по умолчанию в Debian):

nano /opt/php-7.1/etc/php-fpm.d/www.conf
[...]  
listen = 127.0.0.1:8999  
[...]  

3.1 Создайте файл юнита systemd

Далее мы создадим файл системного юнита, который используется для запуска и остановки демона PHP-FPM.

nano /lib/systemd/system/php-7.1-fpm.service

с следующим содержимым:

[Unit]  
Description=The PHP 7.1 FastCGI Process Manager  
After=network.target  
  
[Service]  
Type=simple  
PIDFile=/opt/php-7.1/var/run/php-fpm.pid  
ExecStart=/opt/php-7.1/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.1/etc/php-fpm.conf  
ExecReload=/bin/kill -USR2 $MAINPID  
  
[Install]  
WantedBy=multi-user.target

Включите службу и перезагрузите systemd:

systemctl enable php-7.1-fpm.service  
systemctl daemon-reload

Наконец, запустите PHP-FPM.

systemctl start php-7.1-fpm.service

Чтобы включить Zend OPcache, откройте /opt/php-7.1/lib/php.ini…

nano /opt/php-7.1/lib/php.ini

… и добавьте следующую строку в конце:

[...]  
zend_extension=opcache.so

3.2 Включите Memcache (по желанию)

В этой главе я скомпилирую и включу расширение PHP Memcached.

Первый шаг - установить пакет libmemcached-dev из Debian.

apt-get install libmemcached-dev

Затем создайте директорию, загрузите расширение PHP memcache с Github, распакуйте архив и перейдите в директорию, содержащую распакованные файлы.

mkdir /usr/local/src/php7.1-build/php-memcache  
cd /usr/local/src/php7.1-build/php-memcache  
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip  
unzip php7.zip  
cd php-memcached-php7

Подготовьте источники, запустив команду phpize из PHP 7.1.

/opt/php-7.1/bin/phpize

Настройте и соберите расширение PHP memcache.

./configure --with-php-config=/opt/php-7.1/bin/php-config  
make  
make install

Чтобы включить расширение Memcache, откройте /opt/php-7.1/lib/php.ini…

nano /opt/php-7.1/lib/php.ini

… и добавьте следующую строку в конце:

[...]  
extension=memcached.so

3.3 Установите расширение xDebug (по желанию)

Модуль xDebug - это расширение для отладки PHP. Установка является необязательной.

Установите xDebug с помощью этих команд.

cd /opt/php-7.1/etc  
../bin/pecl -C ./pear.conf update-channels  
../bin/pecl -C ./pear.conf install xdebug

Затем отредактируйте файл php.ini с помощью редактора:

nano /opt/php-7.1/lib/php.ini

и добавьте следующую строку в конец файла:

zend_extension=/opt/php-7.1/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so

Наконец, перезапустите демон php-fpm:

systemctl start php-7.1-fpm.service

Проверьте версию PHP:

cd /opt/php-7.1/bin  
./php --version

Вывод должен быть похож на этот скриншот.

Обратите внимание: Скриншот сделан с PHP 7.1.14, учебник постоянно обновляется для новых версий PHP, но мы не делаем новые скриншоты каждый раз, поэтому версия PHP, которую вы увидите на своем сервере, может быть новее. Текущая версия этого учебника для php-7.1.14.

3.4 Включите PHP 7.1 в ISPConfig

В ISPConfig 3.1 вы можете настроить новую версию PHP в разделе System > Additional PHP Versions. На вкладке Name просто заполните имя для версии PHP (например, PHP 7.1) - эта версия PHP будет перечислена под этим именем в настройках веб-сайта в ISPConfig:

PHP 7.1

Перейдите на вкладку FastCGI Settings и заполните поля следующим образом:

Path to the PHP FastCGI binary: /opt/php-7.1/bin/php-cgi  
Path to the php.ini directory: /opt/php-7.1/lib

PHP 7.1 FCGI

Затем перейдите на вкладку PHP-FPM Settings и заполните поля следующим образом:

Path to the PHP-FPM init script: php-7.1-fpm  
Path to the php.ini directory: /opt/php-7.1/lib  
Path to the PHP-FPM pool directory: /opt/php-7.1/etc/php-fpm.d  

PHP 7.1 FPM

4 Скомпилируйте PHP 7.2 как PHP-FPM и Fastcgi

Скачайте и извлеките PHP с php.net и распакуйте файл tar.bz2:

mkdir -p /opt/php-7.2  
mkdir /usr/local/src/php7.2-build  
cd /usr/local/src/php7.2-build  
wget http://de2.php.net/get/php-7.2.2.tar.bz2/from/this/mirror -O php-7.2.2.tar.bz2  
tar jxf php-7.2.2.tar.bz2
cd php-7.2.2/

Настройте и соберите PHP 7.2 следующим образом (вы можете настроить команду ./configure в соответствии с вашими потребностями, посмотрите на

./configure --help

чтобы увидеть все доступные параметры; если вы используете другую команду ./configure, возможно, потребуются дополнительные библиотеки, или процесс сборки завершится неудачей):

./configure --prefix=/opt/php-7.2 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

Последний переключатель ( –enable-fpm) гарантирует, что эта версия PHP будет работать с PHP-FPM.

make  
make install

Скопируйте php.ini и php-fpm.conf в правильные места:

cp /usr/local/src/php7.2-build/php-7.2.2/php.ini-production /opt/php-7.2/lib/php.ini
cp /opt/php-7.2/etc/php-fpm.conf.default /opt/php-7.2/etc/php-fpm.conf  
cp /opt/php-7.2/etc/php-fpm.d/www.conf.default /opt/php-7.2/etc/php-fpm.d/www.conf

Откройте /opt/php-7.2/etc/php-fpm.conf и измените следующую настройку (уберите ; перед строкой pid):

nano /opt/php-7.2/etc/php-fpm.conf
[...]  
pid = run/php-fpm.pid  
[...]  

Затем откройте /opt/php-7.2/etc/php-fpm.d/www.conf и измените строку listen, вы должны использовать неиспользуемый порт (например, 8998; порт 9000 может быть уже занят PHP-FPM по умолчанию в Debian):

nano /opt/php-7.2/etc/php-fpm.d/www.conf
[...]  
listen = 127.0.0.1:8998  
[...]  

4.1 Создайте файл юнита systemd

Далее мы создадим файл системного юнита, который используется для запуска и остановки демона PHP-FPM.

nano /lib/systemd/system/php-7.2-fpm.service

с следующим содержимым:

[Unit]  
Description=The PHP 7.2 FastCGI Process Manager  
After=network.target  
  
[Service]  
Type=simple  
PIDFile=/opt/php-7.2/var/run/php-fpm.pid  
ExecStart=/opt/php-7.2/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.2/etc/php-fpm.conf  
ExecReload=/bin/kill -USR2 $MAINPID  
  
[Install]  
WantedBy=multi-user.target

Включите службу и перезагрузите systemd:

systemctl enable php-7.2-fpm.service  
systemctl daemon-reload

Наконец, запустите PHP-FPM.

systemctl start php-7.2-fpm.service

Чтобы включить Zend OPcache, откройте /opt/php-7.2/lib/php.ini…

nano /opt/php-7.2/lib/php.ini

… и добавьте следующую строку в конце:

[...]  
zend_extension=opcache.so

4.2 Включите Memcache (по желанию)

В этой главе я скомпилирую и включу расширение PHP Memcached.

Первый шаг - установить пакет libmemcached-dev из Debian.

apt-get install libmemcached-dev

Затем создайте директорию, загрузите расширение PHP memcache с Github, распакуйте архив и перейдите в директорию, содержащую распакованные файлы.

mkdir /usr/local/src/php7.2-build/php-memcache  
cd /usr/local/src/php7.2-build/php-memcache  
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip  
unzip php7.zip  
cd php-memcached-php7

Подготовьте источники, запустив команду phpize из PHP 7.2.

/opt/php-7.2/bin/phpize

Настройте и соберите расширение PHP memcache.

./configure --with-php-config=/opt/php-7.2/bin/php-config  
make  
make install

Чтобы включить расширение Memcache, откройте /opt/php-7.2/lib/php.ini…

nano /opt/php-7.2/lib/php.ini

… и добавьте следующую строку в конце:

[...]  
extension=memcached.so

4.3 Установите расширение xDebug (по желанию)

Модуль xDebug - это расширение для отладки PHP. Установка является необязательной.

Установите xDebug с помощью этих команд.

cd /opt/php-7.2/etc  
pecl -C ./pear.conf update-channels  
pecl -C ./pear.conf install xdebug

Затем отредактируйте файл php.ini с помощью редактора:

nano /opt/php-7.2/lib/php.ini

и добавьте следующую строку в конец файла:

zend_extension=/opt/php-7.2/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so

Наконец, перезапустите демон php-fpm:

systemctl start php-7.2-fpm.service

Проверьте версию PHP:

cd /opt/php-7.2/bin  
./php --version

Вывод должен быть похож на этот скриншот.

Обратите внимание: Скриншот сделан с PHP 7.2.2, учебник постоянно обновляется для новых версий PHP, но мы не делаем новые скриншоты каждый раз, поэтому версия PHP, которую вы увидите на своем сервере, может быть новее. Текущая версия этого учебника для php-7.2.2.

4.4 Включите PHP 7.2 в ISPConfig

В ISPConfig 3.1 вы можете настроить новую версию PHP в разделе System > Additional PHP Versions. На вкладке Name просто заполните имя для версии PHP (например, PHP 7.2) - эта версия PHP будет перечислена под этим именем в настройках веб-сайта в ISPConfig:

PHP 7.2

Перейдите на вкладку FastCGI Settings и заполните поля следующим образом:

Path to the PHP FastCGI binary: /opt/php-7.2/bin/php-cgi  
Path to the php.ini directory: /opt/php-7.2/lib

PHP 7.1 FCGI

Затем перейдите на вкладку PHP-FPM Settings и заполните поля следующим образом:

Path to the PHP-FPM init script: php-7.2-fpm  
Path to the php.ini directory: /opt/php-7.2/lib  
Path to the PHP-FPM pool directory: /opt/php-7.2/etc/php-fpm.d  

PHP 7.2 FPM

5 Скомпилируйте PHP 5.6 как PHP-FPM и Fastcgi

Скачайте PHP и распакуйте архив tar.bz2:

mkdir -p /opt/php-5.6  
mkdir /usr/local/src/php5.6-build  
cd /usr/local/src/php5.6-build  
wget http://de2.php.net/get/php-5.6.33.tar.bz2/from/this/mirror -O php-5.6.33.tar.bz2  
tar jxf php-5.6.33.tar.bz2

Версия OpenSSL в Debian 9 слишком новая для PHP 5.6, поэтому нам придется скомпилировать более старую версию в /opt/openssl, чтобы использовать ее с PHP 5.6.

cd /tmp  
wget "https://www.openssl.org/source/old/1.0.1/openssl-1.0.1t.tar.gz"  
tar xzf openssl-1.0.1t.tar.gz   
cd openssl-1.0.1t  
./config shared --prefix=/opt/openssl  
make -j $(nproc) && make install  
ln -s /opt/openssl/lib /opt/openssl/lib/x86_64-linux-gnu  
wget -O /opt/openssl/ssl/cert.pem "http://curl.haxx.se/ca/cacert.pem"

Создайте символическую ссылку, чтобы PHP мог найти библиотеки freetype, libcrypto и libssl.

mkdir /usr/include/freetype2/freetype  
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h  
ln -s /opt/openssl/lib/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/  
ln -s /opt/openssl/lib/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/  
ln -fs /opt/openssl /usr/local/ssl

Перейдите в папку, содержащую распакованные файлы исходного кода PHP.

cd /usr/local/src/php5.6-build/php-5.6.33/

Настройте и соберите PHP 5.6 следующим образом (вы можете настроить команду ./configure в соответствии с вашими потребностями, посмотрите на

./configure --help

чтобы увидеть все доступные параметры; если вы используете другую команду ./configure, возможно, потребуются дополнительные библиотеки, или процесс сборки завершится неудачей):

./configure --prefix=/opt/php-5.6 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl=/opt/openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

Последний переключатель ( –enable-fpm) гарантирует, что эта версия PHP будет работать с PHP-FPM.

make  
make install

Скопируйте php.ini и php-fpm.conf в правильные места:

cp /usr/local/src/php5.6-build/php-5.6.33/php.ini-production /opt/php-5.6/lib/php.ini
cp /opt/php-5.6/etc/php-fpm.conf.default /opt/php-5.6/etc/php-fpm.conf
mkdir -p /opt/php-5.6/etc/php-fpm.d

Откройте /opt/php-5.6/etc/php-fpm.conf и измените следующую настройку:

nano /opt/php-5.6/etc/php-fpm.conf
[...]  
pid = run/php-fpm.pid  
[...]  
user = www-data  
group = www-data  
[...]  
listen = 127.0.0.1:8997  
[...]  
include=/opt/php-5.6/etc/php-fpm.d/*.conf

5.1 Создайте файл юнита systemd

Далее мы создадим файл системного юнита, который используется для запуска и остановки демона PHP-FPM.

nano /lib/systemd/system/php-5.6-fpm.service

с следующим содержимым:

[Unit]  
Description=The PHP 5.6 FastCGI Process Manager  
After=network.target  
  
[Service]  
Type=simple  
PIDFile=/opt/php-5.6/var/run/php-fpm.pid  
ExecStart=/opt/php-5.6/sbin/php-fpm --nodaemonize --fpm-config /opt/php-5.6/etc/php-fpm.conf  
ExecReload=/bin/kill -USR2 $MAINPID  
  
[Install]  
WantedBy=multi-user.target

Включите службу и перезагрузите systemd:

systemctl enable php-5.6-fpm.service  
systemctl daemon-reload

Наконец, запустите PHP-FPM.

systemctl start php-5.6-fpm.service

Чтобы включить Zend OPcache, откройте /opt/php-5.6/lib/php.ini…

nano /opt/php-5.6/lib/php.ini

… и добавьте следующую строку в конце:

[...]  
zend_extension=opcache.so

5.2 Включите Memcache (по желанию)

В этой главе я скомпилирую и включу расширение PHP Memcached.

Первый шаг - установить пакет libmemcached-dev из Debian.

apt-get install libmemcached-dev

Затем выполните эти команды для сборки расширения memcache

cd /opt/php-5.6/etc  
pecl -C ./pear.conf update-channels  
pecl -C ./pear.conf install memcache

Чтобы включить расширение Memcache, откройте /opt/php-5.6/lib/php.ini…

nano /opt/php-5.6/lib/php.ini

… и добавьте следующую строку в конце:

[...]  
extension=memcache.so

Наконец, перезапустите демон php-fpm:

systemctl start php-5.6-fpm.service

Проверьте версию PHP:

cd /opt/php-5.6/bin  
./php --version

Вывод должен быть похож на этот скриншот.

Обратите внимание: Скриншот сделан с PHP 5.6.33, учебник постоянно обновляется для новых версий PHP, но мы не делаем новые скриншоты каждый раз, поэтому версия PHP, которую вы увидите на своем сервере, может быть новее. Текущая версия этого учебника для php-5.6.33.

5.4 Включите PHP 5.6 в ISPConfig

В ISPConfig 3.1 вы можете настроить новую версию PHP в разделе System > Additional PHP Versions. На вкладке Name просто заполните имя для версии PHP (например, PHP 5.6) - эта версия PHP будет перечислена под этим именем в настройках веб-сайта в ISPConfig:

PHP 5.6

Перейдите на вкладку FastCGI Settings и заполните поля следующим образом:

Path to the PHP FastCGI binary: /opt/php-5.6/bin/php-cgi  
Path to the php.ini directory: /opt/php-5.6/lib

PHP 5.6 FCGI

Затем перейдите на вкладку PHP-FPM Settings и заполните поля следующим образом:

Path to the PHP-FPM init script: php-5.6-fpm  
Path to the php.ini directory: /opt/php-5.6/lib  
Path to the PHP-FPM pool directory: /opt/php-5.6/etc/php-fpm.d  

PHP 5.6 FPM

6 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.