Instalación de Servidores · 7 min read · Dec 23, 2025

Instalando Lighttpd con PHP (modo PHP-FPM) y MySQL o MariaDB en Ubuntu 15.04

Lighttpd es un servidor web seguro, rápido y compatible con estándares, diseñado para entornos críticos en velocidad. Este tutorial muestra cómo puedes instalar Lighttpd en un servidor Ubuntu 15.04 con soporte para PHP (a través de PHP-FPM) y MySQL. 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 para 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 de este tutorial con privilegios de root, así que asegúrate de haber iniciado sesión como root:

sudo su

2 Instalando MySQL / MariaDB

Ubuntu proporciona paquetes para el servidor de base de datos MySQL Original (MySQL 5.6) y el fork de MySQL MariaDB (10). La mayoría de los usuarios utilizarán MariaDB hoy en día ya que es un poco más rápido que MySQL y el desarrollo avanza más rápido. Dejo la decisión de qué instalar a ti aquí y explicaré ambas opciones. Sigue las instrucciones en 2.1 o 2.2 pero no ambas.

2.1 Instalación de MySQL

Instala MySQL así:

apt-get -y install mysql-server-5.6 mysql-client-5.6

Se 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], así que no tenemos que especificar una contraseña de root de MySQL manualmente más tarde:

Nueva contraseña para el usuario “root” de MySQL: <– tucontraseñaderootsql Repetir contraseña para el usuario “root” de MySQL: <– tucontraseñaderootsql

2.2 Instalación de MariaDB

Instala MariaDB así:

apt-get -y install mariadb-server mariadb-client

Ahora establecemos una contraseña de root para MariaDB.

mysql_secure_installation

Se te harán estas preguntas:

Introduce la contraseña actual para root (presiona enter si no hay): <-- presiona enter
¿Establecer contraseña de root? [Y/n] <-- y
Nueva contraseña: <-- Introduce la nueva contraseña de root de MariaDB aquí
Reingresa la nueva contraseña: <-- Repite la contraseña
¿Eliminar usuarios anónimos? [Y/n] <-- y
¿Deshabilitar el inicio de sesión remoto de root? [Y/n] <-- y
¿Recargar tablas de privilegios ahora? [Y/n] <-- y

3 Instalando Lighttpd

Lighttpd está disponible como un paquete de Ubuntu, por lo tanto, podemos instalarlo así:

apt-get -y install lighttpd

Ahora dirígete a tu navegador a http://192.168.1.100/index.lighttpd.html, y deberías ver la página de marcador de posición de Lighttpd:

La raíz del documento por defecto 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 pueden ser habilitadas 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 5

Podemos hacer que PHP5 funcione en Lighttpd a través de PHP-FPM que instalamos así:

apt-get -y install php5-fpm php5

PHP-FPM es un proceso demonio (con el script de inicio /etc/init.d/php5-fpm) que ejecuta un servidor FastCGI en el socket /var/run/php5-fpm.sock.

5 Configurando Lighttpd y PHP 5

Para habilitar PHP5 en Lighttpd, debemos modificar /etc/php5/fpm/php.ini y descomentar la línea cgi.fix_pathinfo=1:

nano /etc/php5/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. Debes 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-spawnfcgi.conf) y modificamos 15-fastcgi-php.conf de la siguiente manera:

cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
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 php5-cgi)
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/var/run/php5-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

Para habilitar la configuración fastcgi, ejecuta los siguientes comandos:

lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php

Esto 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-enabled
root@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled
total 0
lrwxrwxrwx 1 root root 33 Sep 29 18:28 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Sep 29 18:28 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

Luego recargamos Lighttpd:

service lighttpd force-reload

6 Probando PHP5 / Obteniendo Detalles Sobre Tu Instalación de PHP5

La raíz del documento del sitio web por defecto 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.php

Ahora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.1.100/info.php):

Como ves, PHP 5.6 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 para MySQL en PHP.

7 Obteniendo Soporte para MySQL En PHP5

Para obtener soporte para MySQL en PHP, podemos instalar el paquete php5-mysqlnd. Este es preferido sobre el paquete php5-mysql ya que contiene un controlador MySQL más nuevo que soporta tanto MySQL como MariaDB. Es una buena idea instalar algunos otros módulos de PHP5 también ya que podrías necesitarlos para tus aplicaciones. Puedes buscar módulos de PHP5 disponibles así:

apt-cache search php5

Elige los que necesites e instálalos así:

apt-get -y install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Xcache es un caché de opcodes de PHP gratuito y de código abierto para almacenar en caché y optimizar el código intermedio de PHP. Es similar a otros cachés de opcodes de PHP, como eAccelerator y APC. Se recomienda encarecidamente tener uno de estos instalados para acelerar tu página PHP.

Xcache se puede instalar de la siguiente manera:

apt-get -y install php5-xcache

Ahora recarga PHP-FPM:

service php5-fpm reload

Ahora recarga http://192.168.1.100/info.php en tu navegador y desplázate hacia abajo a la sección de módulos nuevamente. Ahora deberías encontrar muchos nuevos módulos allí, incluido el módulo de MySQL:

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 phpmyadmin

Verás las siguientes preguntas:

Servidor web para reconfigurar automáticamente: <– lighttpd ¿Configurar base de datos para phpmyadmin con dbconfig-common? <– sí

Contraseña del usuario administrativo de la base de datos: <-- Introduce la contraseña de root de MySQL/MariaDB
Contraseña de aplicación MySQL para phpmyadmin: <-- Presiona ENTER

Despué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/php5-fpm.sock. También es posible hacer que PHP-FPM use una conexión TCP. Para hacer esto, abre /etc/php5/fpm/pool.d/www.conf…

nano /etc/php5/fpm/pool.d/www.conf

… y haz que la línea listen se vea así:

[...]
;listen = /var/run/php5-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 php5-fpm reload

A 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 php5-cgi)
fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Finalmente recarga Lighttpd:

service lighttpd force-reload

10 Enlaces

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.