Instalación de Software · 4 min read · Dec 17, 2025

Instalando Lighttpd Con Soporte PHP5 (PHP-FPM) Y MySQL En OpenSUSE 13.1

Instalando Lighttpd Con Soporte PHP5 (PHP-FPM) Y MySQL En OpenSUSE 13.1

Versión 1.0
Autor: Falko Timme, actualizado por Srijan Kishore
Sigue a howtoforge en Twitter

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 OpenSUSE 13.1 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 sitios más concurridos. Utilizo PHP-FPM en este tutorial en lugar de spawn-fcgi de Lighttpd.

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

1 Nota Preliminar

En este tutorial utilizo 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 de esta manera:

zypper install mysql-community-server mysql-community-server-client

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:

chkconfig mysql on   
systemctl start mysql.service

Para asegurar la instalación de MySQL, ejecuta:

mysql_secure_installation

Ahora se te harán varias preguntas:

server1:~ # mysql_secure_installation

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

Para iniciar sesión en MySQL y asegurarla, necesitaremos la contraseña actual del usuario root. Si acabas de instalar MySQL, y no has establecido 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 si no hay): <– ENTER
OK, contraseña utilizada 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] <– Y
Nueva contraseña: <– ingresa tu contraseña deseada para root de MySQL
Reingresa nueva contraseña: <– confirma esa contraseña
¡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] <– 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 inicio de sesión remoto para root? [Y/n] <– Y
… ¡É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 la base de datos de prueba y el acceso a ella? [Y/n] <– 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 tengan efecto inmediato.

¿Recargar tablas de privilegios ahora? [Y/n] <– Y
… ¡É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!

server1:~ #

Ahora tu configuración de MySQL debería estar asegurada.

3 Instalando Lighttpd

Lighttpd está disponible como un paquete de OpenSUSE, por lo tanto, podemos instalarlo de esta manera:

zypper 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 comenzamos:

chkconfig lighttpd on  
systemctl start lighttpd.service

Nota: Si obtienes un error al iniciar el servicio lighttpd, entonces desinstala apache2, apache2 interfiere en el proceso de lighttpd. Además, puedes iniciar el servicio de lighttpd.

zypper remove apache2  
chkconfig lighttpd on  
systemctl start lighttpd.service

Ahora dirígete a tu navegador a http://192.168.0.100, y deberías ver que Lighttpd entrega una página (bueno, es una página 404 porque no hay un archivo index en la raíz de documentos de Lighttpd, pero al menos esto significa que Lighttpd está funcionando correctamente):

La raíz de documentos predeterminada de Lighttpd es /srv/www/htdocs en OpenSUSE, 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 de esta manera:

zypper install php5-fpm

Antes de iniciar PHP-FPM, renombra /etc/php5/fpm/php-fpm.conf.default a /etc/php5/fpm/php-fpm.conf:

mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf

Cambia los permisos del directorio de sesiones de PHP:

chmod 1733 /var/lib/php5

Luego abre /etc/php5/fpm/php-fpm.conf…

vi /etc/php5/fpm/php-fpm.conf

… y cambia error_log a /var/log/php-fpm.log:

| [...] error_log = /var/log/php-fpm.log [...] |

No hay un archivo php.ini para PHP-FPM bajo OpenSUSE 13.1, por lo tanto, copiamos el php.ini de CLI:

cp /etc/php5/cli/php.ini /etc/php5/fpm/

A continuación, abre /etc/php5/fpm/php.ini…

vi /etc/php5/fpm/php.ini

… y establece cgi.fix_pathinfo a 1:

| [...] ; 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 a 1 hará que PHP CGI corrija sus rutas para conformarse a la especificación. Un valor 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 [...] |

A continuación, crea los enlaces de inicio del sistema para php-fpm y inícialo:

chkconfig php-fpm on  
systemctl start php-fpm.service
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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