{{tag>webadmin http serveur}}
====== lighttpd ======
Premiers pas avec **lighttpd**, un serveur web rapide et léger de configuration plus aisé qu'apache2. Il répond simplement aux besoins de moyenne envergure.
===== Installation de lighttpd =====
sudo apt-get install lighttpd
Aucune difficulté, en ce qui concerne la configuration de base, le fichier /etc/lighttpd/lighttpd.conf est clair, court et explicite.
===== Mode debug =====
Lors de la phase de configuration du serveur, l'activation des options de debug peut aider à identifier les problème rencontrés:
## options de debug
# Tracer le header des requêtes
#debug.log-request-header = "enable"
# Trace seulement le header de la requete si erreur
#debug.log-request-header-on-error = "enable"
# Tracer le header de la reponse
#debug.log-response-header = "enable"
# Trace le traitement détaillé de la requete par lighttpd
debug.log-request-handling = "enable"
# Trace lorsque une resource n'est pas trouvée
debug.log-file-not-found = "enable"
# trace les conditions
debug.log-condition-handling = "enable"
Détail dans la documentation du projet http://redmine.lighttpd.net/projects/lighttpd/wiki/DebugVariables
===== log access =====
Par défaut l’accès aux ressources n'est pas tracé. Activer le module prévu à cet effet:
$ sudo lighty-enable-mod accesslog
$ sudo service lighttpd force-reload
Par défaut le fichier de log est définit à **/var/log/lighttpd/access.log**. Pour modifier le chemin, éditer le fichier de configuration associé au module: **/etc/lighttpd/conf-available/10-accesslog.conf**
===== Activer le module cgi =====
$ sudo lighty-enable-mod cgi
$ sudo service lighttpd force-reload
Le fichier de configuration **/etc/lighttpd/conf-available/10-cgi.conf** permet notamment de définir les couples d'associations (extension, interpreteur) via la directive **cgi.assign**. Dans le cas suivant les associations sont définies lorsque l'URL commence "/cgi-bin/":
server.modules += ( "mod_cgi" )
# log des erreurs cgi
server.breakagelog = "/var/log/lighttpd/cgi-error.log"
#
$HTTP["url"] =~ "^/cgi-bin/"{
cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "",
".py" => "/usr/bin/python" )
}
Attention a ne pas apporter les modifications dans le fichier **10-fastcgi.conf** prévu pour la configuration d'un module différent.
==== Alias dossier cgi système ====
Avec la configuration par défaut, les scripts ne peuvent être appelés que s'ins se trouvent dans le dossier ./cgi-bin sous le root web. Si l'on souhaite utiliser le dossier /usr/lib/cgi-bin du système, il faut créer un alias. Modifier le fichier de configuration **/etc/lighttpd/lighttpd.conf**:
alias.url = ( "/cgi-bin/" => "/var/www/servers/www.example.org/cgi-bin/" )
===== Références =====
* https://doc.ubuntu-fr.org/lighttpd
* http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModCGI