Instalación de Software · 8 min read · Oct 31, 2025
Instalando Lighttpd con PHP 7 (PHP-FPM) y MySQL 5.7 en Ubuntu 16.04 LTS
Lighttpd es un servidor web seguro, rápido y conforme a estándares, diseñado para entornos críticos en velocidad. Este tutorial muestra cómo puedes instalar Lighttpd en un servidor Ubuntu 16.04 con soporte para PHP 7 (a través de PHP-FPM) y MySQL 5.7. PHP-FPM (FastCGI Process Manager) es una implementación alternativa de PHP FastCGI con algunas características adicionales útiles para sitios de cualquier tamaño, especialmente sitios más concurridos. Utilizo PHP-FPM en este tutorial en lugar de spawn-fcgi de Lighttpd.
1 Nota Preliminar
En este tutorial, utilizo el nombre de host server1.example.com con la dirección IP 192.168.1.100. Estas configuraciones pueden diferir para ti, así que debes reemplazarlas donde sea apropiado.
Estoy ejecutando todos los pasos en este tutorial con privilegios de root, así que asegúrate de haber iniciado sesión como root:
sudo -s2 Instalando MySQL 5.7
Primero, instalamos MySQL de esta manera:
apt-get -y install mysql-server mysql-clientSe te pedirá que proporciones una contraseña para el usuario root de MySQL - esta contraseña es válida para el usuario root@localhost así como para [email protected], por lo que no tenemos que especificar una contraseña de root de MySQL manualmente más adelante:
Nueva contraseña para el usuario “root” de MySQL: <– tucontraseñarootsql Repetir contraseña para el usuario “root” de MySQL: <– tucontraseñarootsql

El instalador ha establecido una contraseña de root de MySQL, pero hay algunas configuraciones más que deben cambiarse para una instalación segura de MySQL. Esto se puede hacer con el comando mysql_secure_installation.
mysql_secure_installationEl comando es interactivo:
root@server1:~# mysql_secure_installationAsegurando la implementación del servidor MySQL.Ingresa la contraseña para el usuario root: <-- Ingresa la contraseña de root de MySQLVALIDATE PASSWORD PLUGIN se puede usar para probar contraseñas
y mejorar la seguridad. Verifica la fortaleza de la contraseña
y permite a los usuarios establecer solo aquellas contraseñas que son
suficientemente seguras. ¿Te gustaría configurar el plugin VALIDATE PASSWORD?Presiona y|Y para Sí, cualquier otra tecla para No: <-- Presiona y si deseas esta función o presiona Enter de lo contrario.
Usando la contraseña existente para root.
¿Cambiar la contraseña para root? ((Presiona y|Y para Sí, cualquier otra tecla para No) : <-- Presiona enter... omitiendo.
Por defecto, una instalación de MySQL tiene un usuario anónimo,
permitiendo que cualquiera inicie sesión en MySQL sin tener que tener
una cuenta de usuario creada para ellos. Esto está destinado solo para
testing, y para hacer que la instalación sea un poco más fluida.
Deberías eliminarlos antes de pasar a un entorno de producción.¿Eliminar usuarios anónimos? (Presiona y|Y para Sí, cualquier otra tecla para No) : <-- y
Éxito.
Normalmente, solo se debería permitir que root se conecte desde
'localhost'. Esto asegura que alguien no pueda adivinar la
contraseña de root desde la red.¿Deshabilitar el inicio de sesión remoto de root? (Presiona y|Y para Sí, cualquier otra tecla para No) : <-- y
Éxito.Por defecto, MySQL viene con una base de datos llamada 'test' que
cualquiera puede acceder. Esto también está destinado solo para testing,
y debería ser eliminado antes de pasar a un entorno de producción.
¿Eliminar la base de datos de prueba y el acceso a ella? (Presiona y|Y para Sí, cualquier otra tecla para No) : <-- y
- Eliminando base de datos de prueba...
Éxito.- Eliminando privilegios en la base de datos de prueba...
Éxito.Recargar las tablas de privilegios asegurará que todos los cambios
realizados hasta ahora surtan efecto de inmediato.¿Recargar tablas de privilegios ahora? (Presiona y|Y para Sí, cualquier otra tecla para No) : <-- y
Éxito.¡Todo listo!3 Instalando Lighttpd
Lighttpd está disponible como un paquete de Ubuntu. Por lo tanto, podemos instalarlo directamente con apt desde el repositorio de paquetes de Ubuntu Xenial Xerus:
apt-get -y install lighttpdAhora dirígete a tu navegador a http://192.168.1.100/, y deberías ver la página de marcador de posición de Lighttpd:

La raíz del documento predeterminado de Lighttpd es /var/www/html en Ubuntu, y el archivo de configuración es /etc/lighttpd/lighttpd.conf. Las configuraciones adicionales se almacenan en archivos en el directorio /etc/lighttpd/conf-available - estas configuraciones se pueden habilitar con el comando lighttpd-enable-mod que crea un enlace simbólico desde el directorio /etc/lighttpd/conf-enabled al archivo de configuración apropiado en /etc/lighttpd/conf-available. Puedes deshabilitar configuraciones con el comando lighttpd-disable-mod.
4 Instalando PHP 7.0
Podemos hacer que PHP funcione en Lighttpd a través de PHP-FPM que instalamos de esta manera:
apt-get -y install php7.0-fpm php7.0PHP-FPM es un proceso daemon (con el script de inicio php5-fpm) que ejecuta un servidor FastCGI en el socket /var/run/php/php7.0-fpm.sock.
5 Configurando Lighttpd y PHP 7.0
Para habilitar PHP en Lighttpd, debemos modificar /etc/php/7.0/fpm/php.ini y descomentar la línea cgi.fix_pathinfo=1:
nano /etc/php/7.0/fpm/php.ini[...]
; cgi.fix_pathinfo proporciona soporte *real* para PATH_INFO/PATH_TRANSLATED para CGI. PHP's
; el comportamiento anterior era establecer PATH_TRANSLATED en SCRIPT_FILENAME, y no entender
; qué es PATH_INFO. Para más información sobre PATH_INFO, consulta las especificaciones de cgi. Establecer
; esto en 1 hará que PHP CGI corrija sus rutas para conformarse a la especificación. Un ajuste
; de cero hace que PHP se comporte como antes. El valor predeterminado es 1. Deberías corregir tus scripts
; para usar SCRIPT_FILENAME en lugar de PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]El archivo de configuración de Lighttpd para PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf es adecuado para usar con spawn-fcgi, sin embargo, queremos usar PHP-FPM, por lo tanto, creamos una copia de seguridad del archivo (nombrado 15-fastcgi-php.conf.bak) y modificamos 15-fastcgi-php.conf de la siguiente manera:
cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.bak
nano 15-fastcgi-php.conf# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Iniciar un servidor FastCGI para php (necesita el paquete php7.0-cgi)
fastcgi.server += ( ".php" =>
((
"socket" => "/var/run/php/php7.0-fpm.sock",
"broken-scriptfilename" => "enable"
))
)Para habilitar la configuración de fastcgi, ejecuta los siguientes comandos:
lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-phpEsto crea los enlaces simbólicos /etc/lighttpd/conf-enabled/10-fastcgi.conf que apunta a /etc/lighttpd/conf-available/10-fastcgi.conf y /etc/lighttpd/conf-enabled/15-fastcgi-php.conf que apunta a /etc/lighttpd/conf-available/15-fastcgi-php.conf:
ls -l /etc/lighttpd/conf-enabledroot@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled
total 0
lrwxrwxrwx 1 root root 33 Abr 27 11:26 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Abr 27 11:26 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
lrwxrwxrwx 1 root root 42 Abr 21 11:10 90-javascript-alias.conf -> ../conf-available/90-javascript-alias.conf
root@server1:/etc/lighttpd/conf-available#Luego recargamos Lighttpd:
service lighttpd force-reloadNota: Si obtienes errores de localización, puedes eliminar el error usando
apt-get -y install language-pack-en-base
dpkg-reconfigure locales6 Probando PHP 7.0 / Obteniendo Detalles Sobre Tu Instalación de PHP
La raíz del documento del sitio web predeterminado es /var/www/html. Ahora crearemos un pequeño archivo PHP (info.php) en ese directorio y lo llamaremos en un navegador. El archivo mostrará muchos detalles útiles sobre nuestra instalación de PHP, como la versión de PHP instalada.
nano /var/www/html/info.phpAhora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.1.100/info.php):

Como ves, PHP 7.0 está funcionando, y está funcionando a través de FPM/FastCGI, como se muestra en la línea de API del servidor. Si desplazas hacia abajo, verás todos los módulos que ya están habilitados en PHP5. MySQL no está listado allí lo que significa que aún no tenemos soporte de MySQL en PHP.
7 Obteniendo soporte de MySQL en PHP
Para obtener soporte de MySQL en PHP, podemos instalar el paquete php7.0-mysql. Es una buena idea instalar algunos otros módulos de PHP también, ya que podrías necesitarlos para tus aplicaciones. Puedes buscar módulos de PHP disponibles de esta manera:
apt-cache search php7.0Elige los que necesites e instálalos de esta manera:
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettextAPCu es una extensión para el módulo Opcache de PHP que viene con PHP 7, agrega algunas características de compatibilidad para software que soporta la caché APC (por ejemplo, plugins de caché de Wordpress).
APCu se puede instalar de la siguiente manera:
apt-get -y install php-apcuAhora recarga PHP-FPM:
service php7.0-fpm reloadAhora recarga http://192.168.1.100/info.php en tu navegador y desplázate hacia abajo a la sección de módulos nuevamente. Deberías encontrar muchos nuevos módulos allí, incluyendo el módulo mysqli y mysqlnd:

8 phpMyAdmin
phpMyAdmin es una interfaz web a través de la cual puedes gestionar tus bases de datos MySQL. Es una buena idea instalarlo:
apt-get -y install phpmyadminVerás las siguientes preguntas:
Servidor web para reconfigurar automáticamente: <-- lighttpd
¿Configurar la base de datos para phpmyadmin con dbconfig-common? <-- Sí
Contraseña de aplicación MySQL para phpmyadmin: <-- Presiona EnterSi obtienes el siguiente error:
Ejecuta /etc/init.d/lighttpd force-reload para habilitar cambios
dpkg: error procesando el paquete phpmyadmin (--configure):
subprocess installed post-installation script returned error exit status 2
E: Sub-process /usr/bin/dpkg returned an error code (1)Entonces ejecuta estos comandos:
/etc/init.d/lighttpd force-reload
apt-get -y install phpmyadminDespués, puedes acceder a phpMyAdmin en http://192.168.1.100/phpmyadmin/:

9 Haciendo que PHP-FPM use una Conexión TCP (Opcional)
Por defecto, PHP-FPM está escuchando en el socket /var/run/php/php7.0-fpm.sock. También es posible hacer que PHP-FPM use una conexión TCP. Para hacer esto, abre /etc/php/7.0/fpm/pool.d/www.conf…
nano /etc/php/7.0/fpm/pool.d/www.conf… y haz que la línea listen se vea como sigue:
[...]
;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
[...]Esto hará que PHP-FPM escuche en el puerto 9000 en la IP 127.0.0.1 (localhost). Asegúrate de usar un puerto que no esté en uso en tu sistema.
Luego recarga PHP-FPM:
service php7.0-fpm reloadA continuación, abre el archivo de configuración de PHP de Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf y reemplaza la línea del socket con líneas de host y puerto:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Iniciar un servidor FastCGI para php (necesita el paquete php7.0-cgi)
fastcgi.server += ( ".php" =>
((
"host" => "127.0.0.1",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)Finalmente recarga Lighttpd:
service lighttpd force-reload10 Enlaces
- Lighttpd: http://www.lighttpd.net/
- PHP: http://www.php.net/
- PHP-FPM: http://php-fpm.org/
- MySQL: http://www.mysql.com/
- Ubuntu: http://www.ubuntu.com/
- phpMyAdmin: http://www.phpmyadmin.net/
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.