GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel d'installation complet pour Lighttpd, un serveur Web léger

Il existe un serveur Web très conservateur dans son utilisation des ressources et son empreinte mémoire. Ce serveur est connu sous le nom de lighttpd (prononcé « lighty »). La configuration d'une instance lighttpd peut être un peu délicate, donc ce tutoriel sert de guide clair sur la façon de configurer correctement un serveur lighttpd sous Linux.

Comprendre le fichier de configuration de chaque instance de serveur Web est essentiel pour exécuter lighttpd avec succès. Ce didacticiel couvrira également l'ajout du support PHP pour vos serveurs Web.

Options de configuration de Lighttpd

Après avoir installé lighttpd, nous allons commencer par créer un fichier qui définit les paramètres du serveur Web. Appelons cela ‘example.conf’ dans le répertoire personnel. Nous allons simplement copier le fichier de configuration par défaut qui se trouve dans /etc/lighttpd. Il s'agit d'un fichier ".conf" standard, donc les règles de syntaxe normales s'appliquent, c'est-à-dire que, par exemple, tous les caractères après "#" sont traités comme des commentaires.

$ cp /etc/lighttpd/lighttpd.conf ~/webservers/example.conf
$ vim ~/webservers/example.conf # Or whatever editor you wish 

Modules de serveur

Le champ « server.modules » contient un tableau de modules utilisés par le serveur. Ajoutons-en deux autres à la liste maintenant :‘mod_fastcgi’ et ‘mod_setenv’. Mod_fastcgi nous permettra d'ajouter le support PHP. Mod_setenv nous permettra de passer un en-tête qui permettra au serveur de faire des requêtes à d'autres domaines, ce qui est utile pour charger des bibliothèques externes.​

REMARQUE :si vous souhaitez également inclure "mod_status" dans la liste, placez "mod_setenv" avant.

Paramètres du serveur

Examinons la section suivante :

server.document-root = "/var/www/html"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80 

Ces champs sont vraiment explicites. Ce sont les valeurs par défaut trouvées dans le fichier de configuration dans /etc/lighttpd . Comme il s'agit d'un nouveau fichier, copié à partir du fichier de configuration par défaut, nous pouvons modifier ce que nous voulons. La racine du document spécifie le niveau de répertoire le plus élevé visible par le serveur Web. Le champ « upload-dirs » contient un tableau de répertoires dans lesquels stocker les téléchargements. Nom d'utilisateur et nom de groupe correspondant à ceux trouvés sur votre système. Par défaut, l'utilisateur "www-data" est le propriétaire des fichiers créés par cette instance de lighttpd. Vous devrez vous assurer que le journal des erreurs est accessible en écriture par "www-data" (couvert un peu plus tard).

Dans cette configuration, changeons le répertoire de la racine du document en ‘/var/www/mysite/html’ .Changez ensuite le journal des erreurs en un nom différent :‘/var/log/lighttpd/mysite/error.log’. Changez ensuite le port en 8080, si vous le souhaitez.

Assistance FastCGI et "setenv"

Puisque nous avons ajouté ces deux modules dans :nous devrons mettre les configurations dans le fichier sous les paramètres du serveur (si les exécutables pour "php" et "php-cgi" sont situés ailleurs, spécifiez-les à la place) :

fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket"
)))cgi.assign = ( ".php" => "/usr/bin/php" ) 

Ce que nous avons fait, c'est dire à lighttpd que si un script PHP était demandé au serveur, il devrait lancer l'interpréteur PHP sur l'ordinateur pour le traiter. Le module FastCGI est ce que nous utilisons pour exécuter des scripts PHP.

Si vous devez autoriser le partage de ressources cross-origin (CORS), ajoutez cette ligne ci-dessous. setenv.add-response-header =( "Access-Control-Allow-Origin" => "*") Pour spécifier un seul domaine, remplacez "*" par le domaine souhaité.

Voici le contenu du fichier de configuration :

Comment installer PHP

Si vous souhaitez un support PHP, PHP devra être installé, en particulier les packages « php » et « php-cgi ». Pour la prise en charge de MySQL, « php-mysql » doit également être installé. Nous avons déjà configuré le serveur Web dans le fichier de configuration pour permettre l'exécution du code PHP.

​Quelques étapes supplémentaires

Fichier journal

Étant donné que l'emplacement du fichier journal que nous avons spécifié dans la configuration se trouve dans un dossier qui n'existe pas encore, lighttpd générera une erreur lors de son exécution. Tout d'abord, nous devrons créer le dossier :

$ sudo mkdir /var/log/lighttpd/mysite ​

Ensuite, créez le fichier journal, puis modifiez la propriété de l'utilisateur et du groupe du fichier en utilisateur « www-data », comme spécifié dans le fichier de configuration.

$ sudo touch /var/log/lighttpd/mysite/error.log
$ sudo chown www-data /var/log/lighttpd/mysite/error.log
$ sudo chgrp www-data /var/log/lighttpd/mysite/error.log ​

Ensuite, nous essayons de lancer le serveur à l'aide de notre fichier de configuration :

$ sudo lighttpd -f mysite.conf 

Copier le fichier d'index

N'oubliez pas de copier le fichier d'index qui se trouve dans le répertoire /var/www/html vers votre répertoire racine :

$ sudo cp /var/www/html/index.lighttpd.html /var/www/html/mysite/index.html   

Faire fonctionner le serveur

Espérons que lighttpd démarrera en arrière-plan sans erreur d'impression à l'écran. Cependant, j'ai rencontré un problème avec l'une des commandes "include_shell" dans la configuration :

include_shell "/usr/share/lighttpd/include-conf-enabled.pl" 

Si vous rencontrez également ce problème, une option consiste à le désactiver (en collant un « # » au début de la ligne).

#include_shell "/usr/share/lighttpd/include-conf-enabled.pl" 

Si vous voulez ou avez besoin de le réparer, l'autre option est d'ouvrir le script Perl spécifié dans la commande include_shell et de changer l'une des chaînes.

Trouvez cette ligne :

my $enabled = “conf-enabled/*.conf”; 

Le problème est qu'il s'agit d'un répertoire auquel ce script fait référence, mais qui est incomplet. Ce que j'ai fait, c'est ajouter où il était indiqué que le répertoire était situé à la variable $enabled.

my $enabled = “/etc/lighttpd/conf-enabled/*.conf”; 

Appliquer des modifications

Après avoir modifié le fichier de configuration d'un serveur particulier, vous devez tuer cette instance de lighttpd et la redémarrer. Le PID de ce serveur peut facilement être trouvé à l'aide de la commande "ps".

Si vous n'avez qu'une seule instance de lighttpd en cours d'exécution, exécutez simplement la commande "killall".

$ sudo killall lighttpd   

Afficher dans votre navigateur

Pour vérifier que votre serveur est opérationnel et fonctionne correctement, ouvrez votre navigateur Web (quel qu'il soit) et tapez dans la barre d'adresse "localhost:8080" ou "127.0.0.1:8080". Si une page s'affiche avec le titre "Page d'espace réservé", votre serveur fonctionne et fournit correctement les pages HTML.

Dépannage

Si vous rencontrez des problèmes lorsque vous lancez le serveur, ou même après cela, vous devrez peut-être résoudre les problèmes. Voici quelques exemples et comment surmonter les problèmes rencontrés ici.

Fichiers téléchargés au lieu d'être traités correctement

Si vous avez essayé d'ouvrir votre page index.html dans votre navigateur Web et qu'il a pris l'initiative de télécharger le fichier au lieu de le rendre, il se peut que vos types MIME ne soient pas correctement configurés.

Assurez-vous que le script Perl pour les configurer est en cours d'exécution.

include_shell "/usr/share/lighttpd/create-mime.assign.pl" 

Cette commande configure votre serveur Web pour gérer correctement différents types de fichiers.

Les scripts PHP ne s'exécutent pas

Assurez-vous que PHP est installé et que le fichier de configuration contient les paramètres définis dans ce didacticiel.

Erreurs HTTP 500

Ces erreurs nécessitent une enquête plus approfondie. Un coupable pourrait être une erreur dans le code PHP. Quelle que soit la cause, lisez le fichier journal pour savoir ce qui s'est passé.

Conclusion

Vous devriez avoir un serveur Web correctement configuré fonctionnant correctement avec lighttpd. Si vous avez besoin de plus d'un lighttpd instance en cours d'exécution, assurez-vous que le port spécifié dans chaque fichier de configuration est différent l'un de l'autre, sinon lighttpd générera une erreur.

Un petit conseil de qualité de vie

Vous pouvez gérer les fichiers sans exécuter d'éditeurs en tant que root en vous donnant la pleine propriété du répertoire :

$ sudo chown -R your_username /var/www/html/mysite
$ sudo chgrp -R your_username /var/www/html/mysite

Linux
  1. Comment configurer Raspberry Pi en tant que serveur de sauvegarde pour les ordinateurs de bureau Linux et Windows

  2. Comment installer le serveur Web Lighttpd sur CentOS 7

  3. 10 navigateurs Web légers Open Source pour Linux

  4. LAMP vs LEMP - conseils pour choisir Apache ou nginx pour votre serveur Web

  5. Les bases des Vhosts

Comment installer le serveur Web Nginx sur Ubuntu Linux :un tutoriel pour les débutants

Apache vs Nginx :quel serveur Web vous convient le mieux ?

Comment configurer le serveur Web Lighttpd sur Ubuntu 18.04

Comment installer le serveur Web Lighttpd sur Ubuntu 18.04

Comment configurer un serveur NGINX RTMP pour le streaming

Comment configurer Nginx comme équilibreur de charge pour Apache ou Tomcat pour HTTP/HTTPS