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 nanoapt-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-devln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.acd /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.bz2cd 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.inicp /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.so3.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.so3.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:

Перейдите на вкладку 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-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 
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.bz2cd 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.inicp /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.so4.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.so4.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:

Перейдите на вкладку 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-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 
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.inicp /opt/php-5.6/etc/php-fpm.conf.default /opt/php-5.6/etc/php-fpm.confmkdir -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/*.conf5.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.so5.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:

Перейдите на вкладку 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-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 
6 Ссылки
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.