Serveur web LightTPD

A propos de LightTPD

Ce chapitre décrit l'utilisation et la configuration du serveur web LightTPD. C'est un serveur HTTP sécurisé, rapide, flexible, et utilisant une petite empreinte mémoire. Il permet une gestion intelligente de la charge CPU, et support FastCGI, CGI, Auth, Output-Compression, réécriture d'URL, etc. LightTPD est un serveur idéal pour héberger son propre site, sur une ancienne machine, et donc à moindre frais.

Sur SliTaz le serveur web est automatiquement lancé au boot du système et il est préconfiguré avec PHP. La racine des documents servis par défaut par le serveur sont dans /var/www et contient une page index.html, s'affichant par défaut, avec des images dans le répertoire images/. Site web de LightTPD : http://www.lighttpd.net/

/var/www - Racine des documents du serveur

Le répertoire /var/www est le répertoire racine des documents servis par défaut. Vous y avez accès via l'url http://localhost/. Ce répertoire contient un page index.html s'affichant automatiquement lors d'une requête. Si vous ne voulez héberger qu'un site, vous pouvez mettre tous les document dans /var/www, et si vous voulez héberger plusieurs sites, il faut créer des hôtes virtuels.

~/Public - Répertoire public des utilisateurs

SliTaz propose aux utilisateurs du système d'avoir un espace public pour y mettre des documents, HTML en général. Ce répertoire se nomme Public et doit se trouver à la racine de votre répertoire maison, tel que : /home/hacker/Public. Pour créer ce répertoire vous pouvez utliser la commande :

 $ mkdir ~/Public

Vous pouvez ensuite y avoir accès via l'url http://localhost/~user/. Exemple pour l'utilisateur hacker : http://localhost/~hacker/. Vous pouvez aussi utiliser le nom de machine ou l'adresse IP, pour vous y connecter depuis une autre machine.

/etc/lighttpd/lighttpd.conf - Fichier de configuration de LightTPD

Le fichier de configuration principal de LightTPD se trouve dans /etc/lighttpd, et se nomme lighttpd.conf. Le fichier de configuration fourni par SliTaz est auto documenté, il suffit de le parcourir. Vous trouverez d'autres exemples sur le site web de LightTPD. Sur SliTaz vous touverez aussi un fichier vhosts.conf destiné à la configuration d'éventuels hôtes virtuels (pour hébérger plusieurs sites sur le même serveur).

Démarrer, arrêter, redémarrer le serveur web

Par défaut SliTaz démarre le serveur au boot, pour qu'il ne soit pas lancé automatiquement vous devez supprimer lighttpd de la variable RUN_DAEMONS qui elle, se trouve dans le fichier de configuration du système d'initialisation /etc/rcS.conf. Pour démarrer, arrêter, redémarrer le serveur web vous pouvez utiliser la commande /etc/init.d/lighttpd [start|stop|restart]. Exemple pour redémarrer le serveur après modification du fichier de configuration :

 # /etc/init.d/lighttpd restart

Scripts CGI et Perl

Pour configurer le serveur LightTPD afin qu'il trouve le chemin du binaire perl et l'utiliser avec les scripts CGI/Perl, vous devez modifier le fichier de configuration du serveur. Exemple en utilisant Geany :

 # geany /etc/lighttpd/lighttpd.conf &
# CGI module. You can install Perl and assign .pl and .cgi script
# to /usr/bin/perl
$HTTP["url"] =~ "/cgi-bin/" {
  cgi.assign = (
    ".sh" => "/bin/sh",
    ".cgi" => "/usr/bin/perl",
    ".pl" => "/usr/bin/perl"
  )
}

Scripts CGI et Python

Pour configurer le serveur LightTPD afin qu'il trouve le chemin du binaire python et l'utiliser avec les scripts CGI/Python, vous devez avoir installé le paquet Python et modifier le fichier de configuration du serveur. Pour installer Python et éditer le fichiers de configuration du serveur web en utilisant Geany :

 # tazpkg get-install python
 # geany /etc/lighttpd/lighttpd.conf &
# CGI module. You can install Perl and assign .pl and .cgi script
# to /usr/bin/perl
$HTTP["url"] =~ "/cgi-bin/" {
  cgi.assign = (
    ".sh" => "/bin/sh",
    ".cgi" => "/usr/bin/python,
    ".py" => "/usr/bin/python
  )
}

Pour que les modifications soient prisent en compte, et utiliser vos premier scripts CGI/Python sur SliTaz, vous devez encore redémarrer LightTPD :

 # /etc/init.d/lighttpd restart

Authentification - Protéger des répertoires

LightTPD fournit un module d'authentification permettant par exemple, de protéger un répertoire. Le serveur propose plusieurs méthodes d'authentification, pour commencer nous allons utiliser la méthode basique sans cryptage des mots de passes. Afin de pouvoir charger le module mod_auth, vous devez avoir installer le paquets lighttpd-modules (tazpkg get-install lighttpd-modules), une fois le paquet installé il faut ajouter mod_auth à la liste des modules :

# Modules to load.
# See /usr/lib/lighttpd for all available modules.
#
server.modules = (
  "mod_access",
  "mod_auth",
  "...",
)

Maintenant vous pouvez configurer le modules en spécifiant le niveau de debug la méthode (plain) et le chemin vers le fichier qui contiendra la liste des noms:pass autorisés à voir le ou les répertoires protégés. Il faut aussi définir le ou les répertoires qui demandent authentification. Dans cet exemple nous protégeons le répertoire admin/ et autorisons son accès à l'utililisateur hacker (user=hacker) :

# Authentification for protected directory.
auth.debug = 2
auth.backend = "plain"
auth.backend.plain.userfile = "/etc/lighttpd/plain.passwd"
auth.require = ( "/admin/" =>
(
"method" => "basic",
"realm" => "Password protected area",
"require" => "user=hacker"
)
)

Pour finir il suffit de créer le fichier des mots de passes, d'ajouter un utilisateur et de redémarrer le serveur pour tester. La syntaxe pour les fichiers basiques est nom:pass. Vous pouvez créer et ajouter un utilisateur à ce fichier avec la commande echo ou l'éditer avec votre éditeur de texte préféré. Pour un utilisateur:motdepasse hacker:root dans un fichier de mots de passes /etc/lighttpd/plain.passwd :

 # echo "hacker:root" > /etc/lighttpd/plain.passwd
 Ou/et :
 # nano /etc/lighttpd/plain.passwd

Pour redémarrer le serveur et ensuite tester avec une adresse du type http://localhost/admin/ :

 # /etc/init.d/lighttpd restart
Copyright © SliTaz - GNU General Public License;
Documentation publiées sous GNU Free Documentation License et codée en xHTML 1.0 valide.