PHP Installation · 6 min read · Nov 03, 2025
Cómo instalar PHP 7 como PHP-FPM y FastCGI para ISPConfig 3 en Debian 8 (Jessie)
La versión final de PHP 7 está disponible para descargar en Github y los espejos de PHP ahora. PHP7 es la próxima generación del lenguaje de programación PHP, es hasta 2 veces más rápido que PHP 5.6 y 14 veces más rápido que PHP 5.0 según las notas de la versión. La nueva versión de PHP no es 100% compatible con PHP 5.x ya que se han eliminado algunas API obsoletas, por lo que es una buena idea comenzar a probar sus sitios web para compatibilidad con esta nueva versión. Esto se puede hacer fácilmente y sin afectar todos los sitios en su servidor utilizando la función de múltiples versiones de PHP en ISPConfig 3. La versión de PHP se puede seleccionar en la configuración del sitio web de ISPConfig 3 para cada sitio individualmente. Esta función funciona con PHP-FPM y FastCGI. Este tutorial muestra cómo construir el nuevo PHP 7 como una versión de PHP-FPM y FastCGI en un servidor Debian Jessie. Estas compilaciones de PHP 7 incluyen Zend OPcache.
1 Nota Preliminar
Voy a instalar PHP 7 que actualmente está en Beta en el momento de escribir esto. Tenga en cuenta que PHP-FPM se puede usar en servidores Apache y Nginx, mientras que FastCGI está disponible solo para servidores Apache.
Con versiones anteriores de PHP, PHP-FPM y FastCGI habían sido mutuamente excluyentes, por lo que se debía construir un binario FPM y FastCGI por separado. Con PHP 7, se puede construir un único binario que soporte el modo FPM y FCGI.
2 Compilar PHP 7 con PHP-FPM y Fastcgi
Descargue y extraiga PHP 7 de Github:
mkdir -p /opt/php-7.0.32
mkdir /usr/local/src/php7-build
cd /usr/local/src/php7-build
wget http://de2.php.net/get/php-7.0.32.tar.bz2/from/this/mirror -O php-7.0.32.tar.bz2
tar jxf php-7.0.32.tar.bz2cd php-7.0.32/Instale los requisitos previos para construir PHP 7 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-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-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.a(El último comando es necesario si construye 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.0.32#)
Configure y construya PHP 7.0.0 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 construcción fallará):
./configure --prefix=/opt/php-7.0.32 --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 switch ( –enable-fpm) asegura que esta versión de PHP funcionará con PHP-FPM.
make
make installCopia php.ini y php-fpm.conf a las ubicaciones correctas:
cp /usr/local/src/php7-build/php-7.0.32/php.ini-production /opt/php-7.0.32/lib/php.inicp /opt/php-7.0.32/etc/php-fpm.conf.default /opt/php-7.0.32/etc/php-fpm.conf
cp /opt/php-7.0.32/etc/php-fpm.d/www.conf.default /opt/php-7.0.32/etc/php-fpm.d/www.confAbra /opt/php-7.0.32/etc/php-fpm.conf y ajuste la siguiente configuración (elimine el ; frente a la línea pid):
nano /opt/php-7.0.32/etc/php-fpm.conf[...]
pid = run/php-fpm.pid
[...] Luego abra /opt/php-7.0.32/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.0.32/etc/php-fpm.d/www.conf[...]
listen = 127.0.0.1:8999
[...] 3 Crear el script de inicio y el archivo de unidad systemd
Debian admite Systemd así como los scripts de inicio tradicionales. Primero crearé un script de inicio para el servicio php-fpm y luego crearé una unidad systemd.
Primero cree un script de inicio para PHP-FPM:
nano /etc/init.d/php-7.0.32-fpm#! /bin/sh
### BEGIN INIT INFO
# Provides: php-7.0.32-fpm
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-7.0.32-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-7.0.32/sbin/php-fpm
php_fpm_CONF=/opt/php-7.0.32/etc/php-fpm.conf
php_fpm_PID=/opt/php-7.0.32/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-exit"
exit 1
else
echo " done"
echo " done"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esacHaga que el script de inicio sea ejecutable y cree los enlaces de inicio del sistema:
chmod 755 /etc/init.d/php-7.0.32-fpm
insserv php-7.0.32-fpmY ahora cree el archivo de unidad systemd
nano /lib/systemd/system/php-7.0.32-fpm.servicecon el siguiente contenido:
[Unit]
Description=El Gestor de Procesos FastCGI de PHP 7
After=network.target
[Service]
Type=simple
PIDFile=/opt/php-7.0.32/var/run/php-fpm.pid
ExecStart=/opt/php-7.0.32/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.0.32/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.targetHabilite el servicio y recargue systemd:
systemctl enable php-7.0.32-fpm.service
systemctl daemon-reloadFinalmente, inicie PHP-FPM.
Para sistemas con un sistema de inicio tradicional, ejecute:
/etc/init.d/php-7.0.32-fpm startEl resultado debería ser:
/etc/init.d/php-7.0.32-fpm start
Starting php-fpm doneEn servidores que utilizan systemd, use este comando en su lugar:
systemctl start php-7.0.32-fpm.servicePara habilitar Zend OPcache, abra /opt/php-7.0.32/lib/php.ini…
nano /opt/php-7.0.32/lib/php.ini… y agregue la siguiente línea al final:
[...]
zend_extension=opcache.soLa extensión Memcache y APCu no se pueden instalar en PHP 7 aún, así que omitiré su instalación por ahora. Actualizaré el tutorial más adelante cuando las extensiones pecl sean compatibles con PHP 7.
Pruebe la versión de PHP:
cd /opt/php-7.0.32/bin
./php --versionLa salida debería ser similar a esta captura de pantalla.
Tenga en cuenta: La captura de pantalla es de PHP 7.0.0, el tutorial se actualiza continuamente para nuevas versiones de PHP 7, pero no tomamos nuevas capturas de pantalla cada vez, por lo que la versión de PHP 7 que verá en su servidor probablemente sea más nueva. La versión actual de este tutorial es para php-7.0.32.
4 Habilitar PHP 7 en ISPConfig
En ISPConfig 3, 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.0.0) - 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.0.32/bin/php-cgi
Ruta al directorio php.ini: /opt/php-7.0.32/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.0.32-fpm
Ruta al directorio php.ini: /opt/php-7.0.32/lib
Ruta al directorio del grupo PHP-FPM: /opt/php-7.0.32/etc/php-fpm.d 
5 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.