Serveur web

Cet article vous guidera à travers les étapes d’installation, de configuration et de dépannage pour configurer un serveur Lighttpd sur un Raspberry Pi, en tenant compte des problèmes d’accès et de permissions que nous avons rencontrés, comme l’erreur 403 Forbidden.


Prérequis

  • Un Raspberry Pi avec un système d’exploitation basé sur Linux (Raspbian, Raspberry Pi OS, etc.).
  • Un accès à Internet.
  • Un utilisateur avec des droits administratifs (utilisation de sudo).

1. Installation de Lighttpd

Mettez à jour vos paquets : Avant toute installation, mettez à jour la liste des paquets pour garantir que vous avez les dernières versions des logiciels disponibles :

  • sudo apt update
  • sudo apt upgrade

Pour installer Lighttpd, utilisez la commande suivante :

  • sudo apt install lighttpd

Une fois installé, démarrez le service Lighttpd et configurez-le pour qu’il démarre automatiquement au démarrage du système :

  • sudo systemctl start lighttpd
sudo systemctl enable lighttpd
  • Vérifiez que le serveur fonctionne :

Après avoir démarré Lighttpd, ouvrez un navigateur et accédez à l’adresse IP de votre Raspberry Pi ou à http://localhost. Vous devriez voir la page d’accueil par défaut de Lighttpd.

http://<ip-du-raspberry-pi>


2. Configuration du serveur Lighttpd

2.1. Modifier le répertoire racine (Document Root)

Par défaut, les fichiers web sont servis à partir de /var/www/html. Si vous souhaitez utiliser un autre répertoire comme /home/pi/www, vous devez modifier la configuration de Lighttpd.

  1. Créez le nouveau répertoire : Si le répertoire /home/pi/www n’existe pas encore, créez-le :
  • mkdir -p /home/pi/www
  • Donnez les permissions appropriées :

Lighttpd s’exécute sous l’utilisateur www-data. Il est important que cet utilisateur ait accès aux répertoires nécessaires, y compris les répertoires parents.

  • sudo chown -R www-data:www-data /home/pi/www
sudo chmod -R 755 /home/pi/www
sudo chmod o+x /home
sudo chmod o+x /home/pi

Les permissions sur les répertoires parents (/home et /home/pi) doivent permettre la traversée, c’est pourquoi il est crucial d’exécuter les deux dernières commandes.

  • Modifiez le fichier de configuration :

Éditez le fichier de configuration Lighttpd pour changer le document-root :
sudo nano /etc/lighttpd/lighttpd.conf

Trouvez la ligne suivante :
server.document-root = "/var/www/html"

Remplacez-la par le chemin de votre nouveau répertoire :

  • server.document-root = "/home/pi/www"

  • Redémarrez Lighttpd :

Après avoir modifié la configuration, redémarrez le service pour appliquer les changements :

  1. sudo systemctl restart lighttpd

2.2. Créer un fichier d’index

Placez un fichier index.html ou index.php dans le répertoire /home/pi/www pour éviter les erreurs 403.

  1. Créer un fichier d’index simple : Utilisez l’éditeur de texte pour créer un fichier d’index de test : bash
sudo nano /home/pi/www/index.html

Ajoutez ce contenu :

<html>
<body>
<head><title>Test Lighttpd</title></head>
<body>
<h1>Lighttpd fonctionne sur Raspberry Pi !</h1>
</body>
</html>
  • Accédez au serveur :

Dans votre navigateur, accédez à l’URL de votre Raspberry Pi pour vérifier que la nouvelle page est bien affichée :

http://<ip-du-raspberry-pi>


3. Résolution des problèmes

Si vous rencontrez l’erreur 403 Forbidden, voici les étapes pour la résoudre :

  1. Vérifiez les permissions du répertoire : Assurez-vous que le répertoire racine et ses fichiers sont accessibles par l’utilisateur www-data.

sudo chown -R www-data:www-data /home/pi/www

sudo chmod -R 755 /home/pi/www
sudo chmod o+x /home
sudo chmod o+x /home/pi

  • Vérifiez les modules et la configuration :

Si vous utilisez des directives comme url.access-deny, assurez-vous qu’elles ne bloquent pas accidentellement l’accès aux fichiers légitimes.

  • url.access-deny = ( "~", ".inc" )

Vous pouvez temporairement commenter cette ligne pour tester si cela résout le problème.

  • Vérifiez les fichiers cachés et .htaccess :

Supprimez ou renommez tout fichier .htaccess qui pourrait contenir des directives bloquant l’accès.

  • Activer la journalisation des erreurs :

Si l’erreur persiste, consultez le fichier de log Lighttpd pour plus de détails :

sudo cat /var/log/lighttpd/error.log


4. Configuration avancée

Pour exécuter des scripts PHP sur votre serveur Lighttpd, vous devez installer PHP et le configurer pour fonctionner avec Lighttpd.

  1. Installez PHP et les modules FastCGI : Utilisez la commande suivante pour installer PHP et FastCGI :
  • sudo apt install php-cgi

Modifiez la configuration Lighttpd pour activer FastCGI :

  • sudo lighty-enable-mod fastcgi
sudo lighty-enable-mod fastcgi-php
  • Redémarrez Lighttpd :

Appliquez les modifications :

sudo service lighttpd force-reload

  • sudo systemctl restart lighttpd

  • Tester un script PHP :

Créez un fichier info.php pour tester la configuration PHP :
sudo nano /home/pi/www/info.php

Ajoutez ce contenu :

<?php phpinfo(); ?>

Accédez à http://<ip-du-raspberry-pi>/info.php pour voir les informations sur PHP.


5. Sécuriser Lighttpd

Désactivez la navigation dans les répertoires : Si vous ne voulez pas que les utilisateurs voient une liste des fichiers dans vos répertoires, désactivez le module dirlisting :

sudo nano /etc/lighttpd/lighttpd.conf

Commentez ou supprimez cette ligne :

  • server.modules += ( "mod_dirlisting" )

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *