Servidor web · 5 min read · Jan 27, 2026

Instalando Lighttpd Con Soporte PHP5 (PHP-FPM) Y MySQL En Fedora 18

Instalando Lighttpd Con Soporte PHP5 (PHP-FPM) Y MySQL En Fedora 18

Versión 1.0
Autor: Falko Timme
Sígueme en Twitter

Lighttpd es un servidor web seguro, rápido y conforme a estándares, diseñado para entornos críticos en cuanto a velocidad. Este tutorial muestra cómo puedes instalar Lighttpd en un servidor Fedora 18 con soporte para PHP5 (a través de PHP-FPM) y soporte para 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. Uso PHP-FPM en este tutorial en lugar de spawn-fcgi de Lighttpd.

¡No emito ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

En este tutorial uso el nombre de host server1.example.com con la dirección IP 192.168.0.100. Estas configuraciones pueden diferir para ti, así que debes reemplazarlas donde sea apropiado.

2 Instalando MySQL 5

Primero instalamos MySQL 5 así:

yum install mysql mysql-server

Luego creamos los enlaces de inicio del sistema para MySQL (para que MySQL se inicie automáticamente cada vez que el sistema arranca) y comenzamos el servidor MySQL:

systemctl enable mysqld.service  
systemctl start mysqld.service

Crea una contraseña para el usuario root de MySQL (reemplaza yourrootsqlpassword con la contraseña que deseas usar):

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation

NOTA: SE RECOMIENDA EJECUTAR TODAS LAS PARTES DE ESTE SCRIPT PARA TODOS LOS SERVIDORES MySQL EN USO EN PRODUCCIÓN! POR FAVOR LEE CUIDADOSAMENTE CADA PASO!

Para iniciar sesión en MySQL y asegurarla, necesitaremos la contraseña actual para el usuario root. Si acabas de instalar MySQL, y no has configurado la contraseña de root aún, la contraseña estará en blanco, así que solo debes presionar enter aquí.

Ingresa la contraseña actual para root (presiona enter para ninguno): <– ENTER
OK, se utilizó la contraseña con éxito, continuando…

Establecer la contraseña de root asegura que nadie pueda iniciar sesión en el usuario root de MySQL sin la autorización adecuada.

¿Establecer contraseña de root? [Y/n] <– ENTER
Nueva contraseña: <– yourrootsqlpassword
Reingresa nueva contraseña: <– yourrootsqlpassword
¡Contraseña actualizada con éxito!
Recargando tablas de privilegios..
… ¡Éxito!

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 pruebas, y para hacer que la instalación sea un poco más fluida. Debes eliminarlos antes de pasar a un entorno de producción.

¿Eliminar usuarios anónimos? [Y/n] <– ENTER
… ¡É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 inicio de sesión remoto para root? [Y/n] <– ENTER
… ¡Éxito!

Por defecto, MySQL viene con una base de datos llamada ‘test’ a la que cualquiera puede acceder. Esto también está destinado solo para pruebas, y debe ser eliminado antes de pasar a un entorno de producción.

¿Eliminar base de datos de prueba y acceso a ella? [Y/n] <– ENTER

  • Eliminando base de datos de prueba…
    … ¡Éxito!
  • Eliminando privilegios sobre 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? [Y/n] <– ENTER
… ¡Éxito!

Limpiando…

¡Todo listo! Si has completado todos los pasos anteriores, tu instalación de MySQL debería estar ahora segura.

¡Gracias por usar MySQL!

[root@server1 ~]#

3 Instalando Lighttpd

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

yum install lighttpd

Luego creamos los enlaces de inicio del sistema para Lighttpd (para que Lighttpd se inicie automáticamente cada vez que el sistema arranca) y lo iniciamos:

systemctl enable lighttpd.service  
systemctl restart lighttpd.service

Ahora dirige tu navegador a http://192.168.0.100, y deberías ver la página de marcador de posición de Lighttpd:

La raíz del documento predeterminada de Lighttpd es /var/www/lighttpd en Fedora, y el archivo de configuración es /etc/lighttpd/lighttpd.conf.

4 Instalando PHP5

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

yum install php-fpm lighttpd-fastcgi

PHP-FPM es un proceso daemon que ejecuta un servidor FastCGI en el puerto 9000.

Crea los enlaces de inicio del sistema para PHP-FPM y inícialo:

systemctl enable php-fpm.service  
systemctl start php-fpm.service

5 Configurando Lighttpd Y PHP5

Para habilitar PHP5 en Lighttpd, debemos modificar dos archivos, /etc/php.ini y /etc/lighttpd/lighttpd.conf. Primero abrimos /etc/php.ini y descomentamos la línea cgi.fix_pathinfo=1:

vi /etc/php.ini

| [...] ; cgi.fix_pathinfo proporciona soporte *real* para PATH_INFO/PATH_TRANSLATED para CGI. El comportamiento anterior de PHP 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://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=1 [...] |

Luego abrimos /etc/lighttpd/conf.d/fastcgi.conf y nos aseguramos de que “mod_fastcgi” esté habilitado:

vi /etc/lighttpd/conf.d/fastcgi.conf

| [...] server.modules += ( "mod_fastcgi" ) [...] |

Luego, más abajo en el archivo, hay un bloque fastcgi.server - déjalo comentado y agrega tu propio bloque fastcgi.server como sigue:

| [...] ## ## Ejemplo de PHP ## Para PHP no olvides establecer cgi.fix_pathinfo = 1 en el php.ini. ## ## El número de procesos php que obtendrás se puede calcular fácilmente: ## ## num-procs = max-procs * ( 1 + PHP_FCGI_CHILDREN ) ## ## para el ejemplo php-num-procs significa que obtendrás 17*5 = 85 procesos php. ## siempre deberías necesitar este alto número para tus sitios muy concurridos. Y si tienes mucha RAM. :) ## fastcgi.server += ( ".php" => (( "host" => "127.0.0.1", "port" => "9000", "broken-scriptfilename" => "enable" )) ) #fastcgi.server = ( ".php" => # ( "php-local" => # ( # "socket" => socket_dir + "/php-fastcgi-1.socket", # "bin-path" => server_root + "/cgi-bin/php5", # "max-procs" => 1, # "broken-scriptfilename" => "enable", # ) # ), # ( "php-tcp" => # ( # "host" => "127.0.0.1", # "port" => 9999, # "check-local" => "disable", # "broken-scriptfilename" => "enable", # ) # ), # # ( "php-num-procs" => # ( # "socket" => socket_dir + "/php-fastcgi-2.socket", # "bin-path" => server_root + "/cgi-bin/php5", # "bin-environment" => ( # "PHP_FCGI_CHILDREN" => "16", # "PHP_FCGI_MAX_REQUESTS" => "10000", # ), # "max-procs" => 5, # "broken-scriptfilename" => "enable", # ) # ), # ) ), [...] |

Abre /etc/lighttpd/modules.conf…

vi /etc/lighttpd/modules.conf

… y activa el archivo /etc/lighttpd/conf.d/fastcgi.conf:

| [...] ## ## FastCGI (mod_fastcgi) ## include "conf.d/fastcgi.conf" [...] |

Luego reiniciamos Lighttpd:

systemctl restart lighttpd.service
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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