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!