# rm-rf.es

Instalación y configuración de Lighttpd con PHP + FastCGI

LighttpdEn esta entrada vamos a instalar el servidor web Lighttpd con soporte para PHP a través de FastCGI. Lighttpd se caracteriza por ser un servidor web ligero y rápido a la vez que seguro y flexible.

Lo primer que hacemos es descargar la última versión estable de Lighttpd y descomprimirla:

# wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.28.tar.gz
# tar -xzvf lighttpd-1.4.28.tar.gz

Vamos a compilar Lighttpd, en este caso vamos a dejar las opciones por defecto y deshabilitar ipv6, zlib y bzip2, básicamente es para que veáis como siempre algun parámetro de la línea de compilación, podríais compilarlo como está por defecto sin problemas. Lo instalamos en la ruta /usr/local/lighttpd.

# mkdir /usr/local/lighttpd
# cd lighttpd-1.4.28
# ./configure --prefix=/usr/local/lighttpd --without-zlib --without-bzip2 --disable-ipv6

Al finalizar aparecerá un resumen de lo que vamos a instalar con las características y plugins activos/deshabilitados, ejemplo:

Plugins:

enabled:
  mod_access
  mod_accesslog
  mod_alias
  mod_auth
  mod_cgi
  mod_compress
  mod_dirlisting
  mod_evhost
  mod_expire
  mod_extforward
  mod_fastcgi
  mod_flv_streaming
  mod_indexfile
  mod_proxy
  mod_redirect
  mod_rewrite
  mod_rrdtool
  mod_scgi
  mod_secdownload
  mod_setenv
  mod_simple_vhost
  mod_ssi
  mod_staticfile
  mod_status
  mod_trigger_b4_dl
  mod_userdir
  mod_usertrack
  mod_webdav
disabled:
  mod_cml
  mod_magnet
  mod_mysql_vhost

Features:

enabled:
  auth-crypt
  large-files
  regex-conditionals
disabled:
  auth-ldap
  compress-bzip2
  compress-deflate
  compress-gzip
  network-ipv6
  network-openssl
  stat-cache-fam
  storage-gdbm
  storage-memcache
  webdav-locks
  webdav-properties

Si todo es correcto, compilamos e instalamos:

# make && make install

Vamos a crear un usuario/grupo dedicado para la ejecución del servicio, sin acceso shell:

# groupadd lighttpd
# useradd -g lighttpd -s /sbin/nologin -d /var/www/html lighttpd

Creamos la estructura de logs:

# mkdir /var/log/lighttpd && chown lighttpd:lighttpd /var/log/lighttpd

Para finalizar de momento con Lighttpd, creamos el fichero de configuración básico, lo podemos ubicar en /etc/lighttpd:

# mkdir /etc/lighttpd && cd /etc/lighttpd

Ahora podemos copiar el fichero de configuración básico que tenemos en las sources:

# cp ./doc/config/lighttpd.conf /etc/lighttpd/ && chown lighttpd:root /etc/lighttpd/lighttpd.conf

Está perfectamente documentado así que una vez personalizado con vuestros requerimientos (probablemente incluso dejandolo tal cual sea suficiente de momento) creamos el script para arrancar/parar el servicio en init.d:

cp ./doc/initscripts/rc.lighttpd.redhat /etc/init.d/lighttpd && chmod +x /etc/init.d/lighttpd

Si queréis, antes de seguir con PHP podéis arrancar el servicio y crear una página de test para verificar que funciona correctamente:

# /etc/init.d/lighttpd start

Ahora vamos a instalar PHP, si queréis información detallada sobre la compilación de PHP podéis ver este otro artículo en el que instalamos Apache y PHP, en este caso hacemos una compilación básica con todo por defecto de la versión 5.3.6:

# wget http://es2.php.net/get/php-5.3.6.tar.gz/from/ar2.php.net/mirror
# tar -xzvf php-5.3.6.tar.gz
# cd php-5.3.6
# ./configure
# make
# make install

Finalmente configuramos Lighttpd para usar PHP a través de FastCGI, añadimos lo siguiente al fichero de configuración lighttpd.conf para activar soporte FastCGI:

fastcgi.server = ( ".php" =>
                   ( "localhost" =>
                     ( "socket" => "/tmp/fcgi.socket",
                       "bin-path" => "/usr/local/bin/php-cgi"
                     )
                   )
                 )

Reiniciamos Lighttpd y ya deberíamos poder visualizar páginas php desde el servidor web:

# /etc/init.d/lighttpd restart
Salir de la versión móvil