Lighttpd es un servidor web muy ligero, que llevaba tiempo siguiendo y me he decidido a instalarlo en una instancia micro de Amazon EC2 para comprobar su poco consumo de recursos.
La instalación descrita a continuación está probada bajo amzn-v0.9, el sistema operativo de Amazon adaptado por defecto en sus instancias micro y basado en CentOS.
Para instalarlo se deben realizar los siguientes pasos:
– Instalar Lighttpd tecleando en la terminal:
yum install lighttpd
Tras esto ya tendremos instalado Lighttpd.
– Ahora podemos iniciar el servicio tecleando en la terminal:
service lighttpd start
Para poder poder servir paginas escritas en PHP, debemos instalar el módulo fastcgi y hacer algunas configuraciones extras.
– Instalamos los paquetes lighttpd-fastcgi y php-cli
yum install lighttpd-fastcgi php-cli
El siguiente paso es configurar lighttpd para que soporte php; abrimos el archivo /etc/php.ini tecleando en la terminal:
vim /etc/php.ini
y agregamos al final del archivo esta linea:
cgi.fix_pathinfo = 1
Los siguiente es editar el fichero /etc/lighttpd/lighttpd.conf tecleando en la terminal:
vi /etc/lighttpd/lighttpd.conf
y descomentamos la línea que dice mod_fastcgi y mod_alias (quitamos el # ) de modo que quede similar a esta:
server.modules = (
"mod_alias",
"mod_access",
"mod_fastcgi",
"mod_accesslog" )
Lo siguiente es editar el fichero /etc/lighttpd/conf.d/fastcgi.conf y descomentamos las siguientes líneas:
#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi"
)
)
)
Guardamos los cambios y salimos del editor.
Sólo queda reiniciar Lighttpd para que se apliquen los cambios tecleando:
service lighttpd restart
Tras esto tendremos Lighttpd funcionando y sirviendo páginas php mediante fastcgi.
La mejor manera de comprobar su correcto funcionamiento es mediante un fichero de prueba, que podemos llamar como queramos y que contenga las siguientes líneas:
<?
phpinfo();
?>
¿Pero que sería un servidor sin un certificado ssl para asegurar las comunicaciones?
La configuración ssl es bastante sencilla:
Primero se crea un directorio donde guardaremos el certificado:
mkdir /etc/lighttpd/ssl
Y dentro crearemos un certificado autofirmado
cd /etc/lighttpd/ssl openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes chmod 400 lighttpd.pem
Después editamos /etc/lighttpd/lighttpd.conf y añadimos:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/lighttpd.pem"
}
Reiniciamos el servidor y ¡listo!
En próximos posts seguiré ahondando en una configuración más exhaustiva y segura y probaré la autenticación básica de usuarios y la reescritura
«Lo siguiente es editar el fichero /etc/lighttpd/cond.f/fastcgi.conf y descomentamos las siguientes líneas:»
te equivocaste… es «/etc/lighttpd/conf.d/fastcgi.conf»
Gracias por la corrección!