Dans le monde des serveurs web opensource, il existe principalement Apache, mais le probleme d’apache est que pour le developpement, il reste un peu lourd et surtout moins réactif que d’autres, comme Lighttpd. En effet, Lighttpd comme son nom l’indique est censé être light, je dit censé car il est loin de l’être, le light tiens surtout de sa petite empreinte mémoire et de sa rapidité à servir des pages statiques.
Voici une liste de ses possibilités :
Virtual hosts
Virtual directory listings
URL-Rewriting, HTTP-Redirects
Large File Support (64bit fileoffsets)
on-the-fly output-compression with transparent caching
deflate, gzip, bzip2
authentication : basic, digest
backends: plain files, htpasswd, htdigest, ldap
fast and secure application controlled downloads
Server Side Includes
User Tracking
FastCGI, CGI, SSI
Same speed as or faster than apache + mod_php4
Includes a utility to spawn FastCGI processes (neccesary for PHP 4.3.x) via FastCGI and CGI interface
load-balanced FastCGI (one webserver distibutes request to multiple PHP-servers via FastCGI)
chroot(), set UID, set GID
protecting docroot
strict HTTP-header parsing
Bref, que du bonheur, de nombreux sites l’utilisent déjà pour servir leurs pages plutot qu’Apache, tel que YouTube, Wikipedia ou encore sourceforge.net.
Bon, assez parlé du serveur et passons à l’installation :
Ici je parlerais de l’installation sous Ubuntu qui reste la distribution la plus populaire actuellement, et surtout celle que j’utilise.
Donc, la première étape est d’installer les packages via apt-get :
sudo apt-get install lighttpd lighttpd-doc libpcre3
Vous voilà donc avec Lighttpd installé, si vous voulez en plus utiliser php et mysql, il vous faudra installer les paquets mysql-common, libmysqlclient12, php5-cgi voire mysql-server si vous voulez héberger votre base sur le même serveur.

Ensuite, il vous faudra activer le module fastCGI pour utiliser php5, pour cela, il suffit de lancer les commandes suivante dans un terminal :
sudo ln -s /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-enabled/10-fastcgi.conf sudo /etc/init.d/lighttpd restart
Vous voila donc avec un Lighttpd configuré pour fonctionner avec php5.

Il ne vous reste plus qu’à aller modifier vous même la configuration de lighttpd pour que celle-ci corresponde à vos attentes. Pour cela, je vous invite à aller consulter la documentation ici. Ou alors vous pouvez me poser vos questions en commentaire et je m’efforcerais d’y répondre rapidement.











4 Commentaires
Bonjour,
Je me sers de lighttpd sur un réseau local, et effectivement, il me donne toute satisfaction.
Il a les défauts de ses qualités: un seul fichier de configuration, peut-être simple à maintenir, mais ce qui veut dire que les règles de réécritures ne peuvent figurer comme avec Apache dans des fichiers .htaccess dispersés dans l’arborescence. Et donc qu’il ne convient pas à un hébergement mutuallisé où les utilisateurs souhaiteraient personnaliser le comportement du serveur pour leur site.
Et j’avoue n’avoir jamais rien compris à la façon d’activer l’exécution de scripts cgi avec l’identité de l’utilisateur…
Si vous aviez des pistes à ce sujet, elles seraient bienvenues ;-)
Cordialement,
Gauthier
Gauthier,
Tu n’es pas obligé de n’avoir qu’un seul fichier de configuration, tout comme dans Apache tu peux inclure d’autres fichiers de conf.
Tu peux aussi utiliser des .htaccess dans les dossiers utilisateurs.
J’imagine que des sites comme wikipedia ne se contentent pas d’un seul fichier de configuration et pourtant ils utilisent Lighttpd.
Dès que j’aurais le temps, je ferais un petit article pour expliquer comment rendre modulaire le fichier de conf, mais toujours est-il que dans la documentation tu doit pouvoir trouver cela.
Sinon, si tu veux executer les scripts CGI avec un autre utilisateur que celui qui execute le serveur tu as execwrap qui permet cela. Si la question est de faire tourner lighttpd avec un autre user, l’option est clairement ecrite dans la doc :
server.username: username used to run the server.
Re-bonjour,
Avec suexec, Apache permet que les scripts cgi exécutés dans les répertoires utilisateurs (http://localhost/~toto) le soient avec les droits de ces utilisateurs. Ce qui permet d’écrire/effacer dans des répertoires dont les droits ne sont pas à 777, et d’éviter que les scripts ne créent des fichiers avec l’uid de nobody:nogroup, qu’un utilisateur non-privilégié ne pourrait modifier.
Pour autant que Apache et suexec soient bien configuré, il suffit donc qu’un utilisateur ait un répertoire web (généralement ~/public_html) pour que tout y fonctionne.
Honnêtement, ce que j’ai lu dans la doc de lighttpd pour y parvenir m’a complêtement découragé. Si j’ai bien compris, dans le meilleur des cas, il faut configurer un hôte virtuel, un “wrapper” et un processus fast-cgi pour chaque utilisateur… J’ai abandonné.
Effectivement, mettre en place l’équivalent de suexec ne semble pas simple sous lighttpd, il faudrait que je me penche un peu sur ce problème…