lighttpd (lighty) est un serveur web qui nécessite beaucoup moins de ressources qu'Apache, par exemple, et est donc particulièrement adapté aux très grosses charges ou aux systèmes très faibles. Il a été développé par Jan Kneschke et peut être complété par des modules. FastCGI, par exemple, permet d'exécuter du code PHP. SCGI complète lighty avec Ruby ou Python.
Étapes pour installer le serveur Web Lighttpd sur Debian 11 ou Ubuntu 20.04
Installation
lighttpd peut être installé directement à partir des sources de paquets officielles sur Debian 11 Bullseye, nous n'avons donc pas besoin d'un dépôt tiers comme Apache. Exécutez la commande unique donnée pour installer ce serveur Web.
sudo apt install lighttpd -y
Sortie :
Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: bzip2 file libbrotli1 libgdbm-compat4 libgdbm6 libmagic-mgc libmagic1 libperl5.32 lighttpd-mod-deflate lighttpd-mod-openssl mailcap media-types mime-support netbase perl perl-modules-5.32 spawn-fcgi xz-utils Suggested packages: bzip2-doc gdbm-l10n sensible-utils openssl rrdtool php-cgi php-fpm apache2-utils lighttpd-doc lighttpd-mod-authn-gssapi lighttpd-mod-authn-pam lighttpd-mod-authn-sasl lighttpd-mod-geoip lighttpd-mod-maxminddb lighttpd-mod-trigger-b4-dl lighttpd-mod-vhostdb-pgsql lighttpd-mod-webdav lighttpd-modules-dbi lighttpd-modules-ldap lighttpd-modules-lua lighttpd-modules-mysql perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make libtap-harness-archive-perl The following NEW packages will be installed: bzip2 file libbrotli1 libgdbm-compat4 libgdbm6 libmagic-mgc libmagic1 libperl5.32 lighttpd lighttpd-mod-deflate lighttpd-mod-openssl mailcap media-types mime-support netbase perl perl-modules-5.32 spawn-fcgi xz-utils 0 upgraded, 19 newly installed, 0 to remove and 0 not upgraded. Need to get 8843 kB of archives. After this operation, 57.6 MB of additional disk space will be used. Do you want to continue? [Y/n] Y
Démarrer et activer le service Lighttpd
Une fois l'installation terminée, l'utilisateur peut démarrer et activer le service de serveur Web afin qu'il puisse être démarré automatiquement même après le redémarrage du système ou du serveur.
sudo systemctl start lighttpd sudo systemctl enable lighttpd
Pour vérifier l'état :
systemctl status lighttpd
Configuration Lighttpd sur Debian 11 ou Ubuntu
Le Lighttpd est configuré via le fichier /etc/lighttpd/lighttpd.conf
. Cela peut être modifié avec n'importe quel éditeur de texte avec les droits root. De nombreuses options de configuration sont décrites en détail dans le fichier de configuration lui-même.
Exemple :
sudo nano /etc/lighttpd/lighttpd.conf
Activer CGI
CGI est une interface entre le serveur Web et le système d'exploitation, par exemple pour exécuter des scripts Perl via le serveur Web. Le contenu dynamique peut être généré de cette manière. Ainsi, ce module peut être activé via cette commande :
sudo lighty-enable-mod cgi
Accéder à la page Web Lighttpd par défaut
Ouvrez votre navigateur et pointez vers l'adresse IP du serveur sur lequel vous avez installé le serveur Web Lighttpd. Vous obtiendrez la page par défaut de ce serveur Web.
Authentification HTTP
Afin de fournir aux répertoires une protection par mot de passe, le auth module est requis et peut être activé via
sudo lighty-enable-mod auth sudo service lighttpd force-reload
L'utilisation de .htaccess fichiers connus d'Apache n'est malheureusement pas possible avec lighty. Au lieu de cela, les paramètres doivent être définis dans le fichier de configuration /etc/lighttpd/conf-enabled/05-auth.co
nf, et le redémarrage du serveur Web est requis.
L'authentification est possible avec basique et digérer , où les backends simples , htpasswd , htdigest et ldap peut être utilisé.
Par exemple, afin de fournir aux répertoires /server-status et /server-statistics une authentification de base via .htpasswd, l'entrée suivante est requise dans 05-auth.conf :
auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/etc/lighttpd/htpasswd" auth.require = ( "/server-status" => ( "method" => "basic", "realm" => "server status", "require" => "valid-user" ), "/server-info" => ( "method" => "digest", "realm" => "server info", "require" => "valid-user" ) )
Pour plus d'informations, consultez la documentation officielle.