PHP Installation · 12 min read · Nov 04, 2025
Cómo instalar PHP 7.1, 7.2 y 5.6 como PHP-FPM y FastCGI para ISPConfig 3 en Debian 9
Debian 9 se envía con PHP 7.0 como la versión predeterminada de PHP. Las versiones principales de PHP no son 100% compatibles entre sí, por lo que un sitio web puede requerir una versión de PHP más nueva o más antigua para funcionar. ISPConfig lo admite para usar múltiples versiones de PHP en el mismo servidor, la versión de PHP se puede seleccionar para cada sitio web individualmente en la configuración del sitio web. Este tutorial muestra cómo instalar PHP 7.1, 7.2 y 5.6 en modo FPM y FCGI junto con PHP 7.0 en un servidor Debian 9. Las versiones adicionales de PHP se instalan en la carpeta /opt, por lo que su instalación no afecta la versión predeterminada de PHP.
ACTUALIZACIÓN: Se recomienda instalar versiones adicionales de PHP en Debian y Ubuntu a partir de paquetes ahora. El tutorial se puede encontrar aquí: https://www.howtoforge.com/tutorial/how-to-install-php-7-for-ispconfig-3-from-debian-packages-on-debian-8-and-9/
1 Nota Preliminar
Voy a instalar PHP 7.1, 7.2 y 5.6. Tenga en cuenta que PHP-FPM se puede usar tanto en servidores Apache como Nginx, mientras que FastCGI está disponible solo para servidores Apache.
2 Instalar los requisitos previos
Instale los requisitos previos para compilar PHP y el editor nano que usaré para editar los archivos de configuración:
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(El último comando es necesario si compila PHP con –with-imap, porque de lo contrario ./configure se detendrá con el siguiente error:
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 Compilar PHP 7.1 como PHP-FPM y Fastcgi
Descargue y extraiga el archivo de 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/Configure y compile PHP 7.1 de la siguiente manera (puede ajustar el comando ./configure a sus necesidades, eche un vistazo a
./configure --helppara ver todas las opciones disponibles; si usa un comando ./configure diferente, es posible que se requieran bibliotecas adicionales, o el proceso de compilación fallará):
./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-fpmEl último interruptor ( –enable-fpm) asegura que esta versión de PHP funcionará con PHP-FPM.
make
make installCopie php.ini y php-fpm.conf a las ubicaciones correctas:
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.confAbra /opt/php-7.1/etc/php-fpm.conf y ajuste la siguiente configuración (elimine el ; frente a la línea pid):
nano /opt/php-7.1/etc/php-fpm.conf[...]
pid = run/php-fpm.pid
[...] Luego abra /opt/php-7.1/etc/php-fpm.d/www.conf y ajuste la línea listen, debe usar un puerto no utilizado (por ejemplo, 8999; el puerto 9000 podría estar en uso por el PHP-FPM predeterminado de Debian ya):
nano /opt/php-7.1/etc/php-fpm.d/www.conf[...]
listen = 127.0.0.1:8999
[...] 3.1 Crear el archivo de unidad systemd
A continuación, crearemos el archivo de unidad del sistema que se utiliza para iniciar y detener el demonio PHP-FPM.
nano /lib/systemd/system/php-7.1-fpm.servicecon el siguiente contenido:
[Unit]
Description=El gestor de procesos FastCGI de PHP 7.1
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.targetHabilite el servicio y recargue systemd:
systemctl enable php-7.1-fpm.service
systemctl daemon-reloadFinalmente, inicie PHP-FPM.
systemctl start php-7.1-fpm.servicePara habilitar el Zend OPcache, abra /opt/php-7.1/lib/php.ini…
nano /opt/php-7.1/lib/php.ini… y agregue la siguiente línea al final:
[...]
zend_extension=opcache.so3.2 Habilitar Memcache (opcional)
En este capítulo, compilaré y habilitaré la extensión PHP Memcached.
El primer paso es instalar el paquete libmemcached-dev de Debian.
apt-get install libmemcached-devLuego cree un directorio, descargue la extensión PHP memcache de Github, descomprima el archivo y entre en el directorio que contiene los archivos descomprimidos.
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-php7Prepare las fuentes ejecutando el comando phpize de PHP 7.1.
/opt/php-7.1/bin/phpizeConfigure y compile la extensión PHP memcache.
./configure --with-php-config=/opt/php-7.1/bin/php-config
make
make installPara habilitar la extensión Memcache, abra /opt/php-7.1/lib/php.ini…
nano /opt/php-7.1/lib/php.ini… y agregue la siguiente línea al final:
[...]
extension=memcached.so3.3 Instalar la extensión xDebug (opcional)
El módulo xDebug es una extensión de depuración para PHP. La instalación es opcional.
Instale xDebug con estos comandos.
cd /opt/php-7.1/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install xdebugLuego edite el archivo php.ini con un editor:
nano /opt/php-7.1/lib/php.iniy agregue la siguiente línea al final del archivo:
zend_extension=/opt/php-7.1/lib/php/extensions/no-debug-non-zts-20160303/xdebug.soFinalmente reinicie el demonio php-fpm:
systemctl start php-7.1-fpm.servicePruebe la versión de PHP:
cd /opt/php-7.1/bin
./php --versionLa salida debería ser similar a esta captura de pantalla.
Tenga en cuenta: La captura de pantalla es de PHP 7.1.14, el tutorial se actualiza continuamente para nuevas versiones de PHP, pero no tomamos nuevas capturas de pantalla cada vez, por lo que la versión de PHP que verá en su servidor podría ser más nueva. La versión actual de este tutorial es para php-7.1.14.
3.4 Habilitar PHP 7.1 en ISPConfig
En ISPConfig 3.1, puede configurar la nueva versión de PHP en Sistema > Versiones adicionales de PHP. En la pestaña Nombre, solo complete un nombre para la versión de PHP (por ejemplo, PHP 7.1) - esta versión de PHP se enumerará bajo este nombre en la configuración del sitio web en ISPConfig:

Vaya a la pestaña Configuración de FastCGI y complete los campos de la siguiente manera:
Ruta al binario PHP FastCGI: /opt/php-7.1/bin/php-cgi
Ruta al directorio php.ini: /opt/php-7.1/lib
Luego vaya a la pestaña Configuración de PHP-FPM y complete los campos de la siguiente manera:
Ruta al script de inicio de PHP-FPM: php-7.1-fpm
Ruta al directorio php.ini: /opt/php-7.1/lib
Ruta al directorio del grupo PHP-FPM: /opt/php-7.1/etc/php-fpm.d 
4 Compilar PHP 7.2 como PHP-FPM y Fastcgi
Descargue y extraiga PHP de php.net y descomprima el archivo 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/Configure y compile PHP 7.2 de la siguiente manera (puede ajustar el comando ./configure a sus necesidades, eche un vistazo a
./configure --helppara ver todas las opciones disponibles; si usa un comando ./configure diferente, es posible que se requieran bibliotecas adicionales, o el proceso de compilación fallará):
./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-fpmEl último interruptor ( –enable-fpm) asegura que esta versión de PHP funcionará con PHP-FPM.
make
make installCopie php.ini y php-fpm.conf a las ubicaciones correctas:
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.confAbra /opt/php-7.2/etc/php-fpm.conf y ajuste la siguiente configuración (elimine el ; frente a la línea pid):
nano /opt/php-7.2/etc/php-fpm.conf[...]
pid = run/php-fpm.pid
[...] Luego abra /opt/php-7.2/etc/php-fpm.d/www.conf y ajuste la línea listen, debe usar un puerto no utilizado (por ejemplo, 8998; el puerto 9000 podría estar en uso por el PHP-FPM predeterminado de Debian ya):
nano /opt/php-7.2/etc/php-fpm.d/www.conf[...]
listen = 127.0.0.1:8998
[...] 4.1 Crear el archivo de unidad systemd
A continuación, crearemos el archivo de unidad del sistema que se utiliza para iniciar y detener el demonio PHP-FPM.
nano /lib/systemd/system/php-7.2-fpm.servicecon el siguiente contenido:
[Unit]
Description=El gestor de procesos FastCGI de PHP 7.2
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.targetHabilite el servicio y recargue systemd:
systemctl enable php-7.2-fpm.service
systemctl daemon-reloadFinalmente, inicie PHP-FPM.
systemctl start php-7.2-fpm.servicePara habilitar el Zend OPcache, abra /opt/php-7.2/lib/php.ini…
nano /opt/php-7.2/lib/php.ini… y agregue la siguiente línea al final:
[...]
zend_extension=opcache.so4.2 Habilitar Memcache (opcional)
En este capítulo, compilaré y habilitaré la extensión PHP Memcached.
El primer paso es instalar el paquete libmemcached-dev de Debian.
apt-get install libmemcached-devLuego cree un directorio, descargue la extensión PHP memcache de Github, descomprima el archivo y entre en el directorio que contiene los archivos descomprimidos.
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-php7Prepare las fuentes ejecutando el comando phpize de PHP 7.2.
/opt/php-7.2/bin/phpizeConfigure y compile la extensión PHP memcache.
./configure --with-php-config=/opt/php-7.2/bin/php-config
make
make installPara habilitar la extensión Memcache, abra /opt/php-7.2/lib/php.ini…
nano /opt/php-7.2/lib/php.ini… y agregue la siguiente línea al final:
[...]
extension=memcached.so4.3 Instalar la extensión xDebug (opcional)
El módulo xDebug es una extensión de depuración para PHP. La instalación es opcional.
Instale xDebug con estos comandos.
cd /opt/php-7.2/etc
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install xdebugLuego edite el archivo php.ini con un editor:
nano /opt/php-7.2/lib/php.iniy agregue la siguiente línea al final del archivo:
zend_extension=/opt/php-7.2/lib/php/extensions/no-debug-non-zts-20170718/xdebug.soFinalmente reinicie el demonio php-fpm:
systemctl start php-7.2-fpm.servicePruebe la versión de PHP:
cd /opt/php-7.2/bin
./php --versionLa salida debería ser similar a esta captura de pantalla.
Tenga en cuenta: La captura de pantalla es de PHP 7.2.2, el tutorial se actualiza continuamente para nuevas versiones de PHP, pero no tomamos nuevas capturas de pantalla cada vez, por lo que la versión de PHP que verá en su servidor podría ser más nueva. La versión actual de este tutorial es para php-7.2.2.
4.4 Habilitar PHP 7.2 en ISPConfig
En ISPConfig 3.1, puede configurar la nueva versión de PHP en Sistema > Versiones adicionales de PHP. En la pestaña Nombre, solo complete un nombre para la versión de PHP (por ejemplo, PHP 7.2) - esta versión de PHP se enumerará bajo este nombre en la configuración del sitio web en ISPConfig:

Vaya a la pestaña Configuración de FastCGI y complete los campos de la siguiente manera:
Ruta al binario PHP FastCGI: /opt/php-7.2/bin/php-cgi
Ruta al directorio php.ini: /opt/php-7.2/lib
Luego vaya a la pestaña Configuración de PHP-FPM y complete los campos de la siguiente manera:
Ruta al script de inicio de PHP-FPM: php-7.2-fpm
Ruta al directorio php.ini: /opt/php-7.2/lib
Ruta al directorio del grupo PHP-FPM: /opt/php-7.2/etc/php-fpm.d 
5 Compilar PHP 5.6 como PHP-FPM y Fastcgi
Descargue PHP y descomprima el archivo 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.bz2La versión de OpenSSL en Debian 9 es demasiado nueva para PHP 5.6, por lo que tendremos que compilar una versión anterior en /opt/openssl para usarla con 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"Cree un enlace simbólico para que PHP encuentre las bibliotecas freetype, libcrypto y 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/sslIngrese a la carpeta que contiene los archivos fuente de PHP descomprimidos.
cd /usr/local/src/php5.6-build/php-5.6.33/Configure y compile PHP 5.6 de la siguiente manera (puede ajustar el comando ./configure a sus necesidades, eche un vistazo a
./configure --helppara ver todas las opciones disponibles; si usa un comando ./configure diferente, es posible que se requieran bibliotecas adicionales, o el proceso de compilación fallará):
./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-fpmEl último interruptor ( –enable-fpm) asegura que esta versión de PHP funcionará con PHP-FPM.
make
make installCopie php.ini y php-fpm.conf a las ubicaciones correctas:
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.dAbra /opt/php-5.6/etc/php-fpm.conf y ajuste la siguiente configuración:
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 Crear el archivo de unidad systemd
A continuación, crearemos el archivo de unidad del sistema que se utiliza para iniciar y detener el demonio PHP-FPM.
nano /lib/systemd/system/php-5.6-fpm.servicecon el siguiente contenido:
[Unit]
Description=El gestor de procesos FastCGI de PHP 5.6
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.targetHabilite el servicio y recargue systemd:
systemctl enable php-5.6-fpm.service
systemctl daemon-reloadFinalmente, inicie PHP-FPM.
systemctl start php-5.6-fpm.servicePara habilitar el Zend OPcache, abra /opt/php-5.6/lib/php.ini…
nano /opt/php-5.6/lib/php.ini… y agregue la siguiente línea al final:
[...]
zend_extension=opcache.so5.2 Habilitar Memcache (opcional)
En este capítulo, compilaré y habilitaré la extensión PHP Memcached.
El primer paso es instalar el paquete libmemcached-dev de Debian.
apt-get install libmemcached-devLuego ejecute estos comandos para construir la extensión memcache
cd /opt/php-5.6/etc
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install memcachePara habilitar la extensión Memcache, abra /opt/php-5.6/lib/php.ini…
nano /opt/php-5.6/lib/php.ini… y agregue la siguiente línea al final:
[...]
extension=memcache.soFinalmente reinicie el demonio php-fpm:
systemctl start php-5.6-fpm.servicePruebe la versión de PHP:
cd /opt/php-5.6/bin
./php --versionLa salida debería ser similar a esta captura de pantalla.
Tenga en cuenta: La captura de pantalla es de PHP 5.6.33, el tutorial se actualiza continuamente para nuevas versiones de PHP, pero no tomamos nuevas capturas de pantalla cada vez, por lo que la versión de PHP que verá en su servidor podría ser más nueva. La versión actual de este tutorial es para php-5.6.33.
5.4 Habilitar PHP 5.6 en ISPConfig
En ISPConfig 3.1, puede configurar la nueva versión de PHP en Sistema > Versiones adicionales de PHP. En la pestaña Nombre, solo complete un nombre para la versión de PHP (por ejemplo, PHP 5.6) - esta versión de PHP se enumerará bajo este nombre en la configuración del sitio web en ISPConfig:

Vaya a la pestaña Configuración de FastCGI y complete los campos de la siguiente manera:
Ruta al binario PHP FastCGI: /opt/php-5.6/bin/php-cgi
Ruta al directorio php.ini: /opt/php-5.6/lib
Luego vaya a la pestaña Configuración de PHP-FPM y complete los campos de la siguiente manera:
Ruta al script de inicio de PHP-FPM: php-5.6-fpm
Ruta al directorio php.ini: /opt/php-5.6/lib
Ruta al directorio del grupo PHP-FPM: /opt/php-5.6/etc/php-fpm.d 
6 Enlaces
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.