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.
- 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 :
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.
- 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 :
- 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.
- 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" )