Serveur web LightTPD
- A propos de LightTPD.
- /var/www - Racine des documents du serveur.
- ~/Public - Répertoire public des utilisateurs.
- lighttpd.conf - Fichier de configuration de LightTPD.
- Démarrer, arrêter, redémarrer le serveur web.
- http://localhost/
- http://localhost/server-status
- Scripts CGI et Perl - Configurer le serveur pour le support des scripts CGI utilisant Perl.
- Scripts CGI et Python - Scripts CGI utilisant Python.
- Authentification - Protéger un ou des répertoires avec nom d'utilisateur et mots de passes.
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