Installer Lighttpd sur Raspberry

1/ Installation du serveur Lighttpd

La plupart des serveurs web fonctionnent sous Apache. Ce dernier est supporté sur Raspberry mais pour le processeur ARM on préfèrera utiliser une solution plus légère comme lighttpd.
Son installation est relativement simple :

sudo apt-get install lighttpd

L’installation terminée le serveur sert déjà le html, une page par défaut est accessible depuis un navigateur web en indiquant l’adresse IP du raspberry depuis un réseau local.

La racine du site se trouve dans le répertoire /var/www/, la création d’un fichier index.html remplacera la page par défaut de lighttpd.

1.1 Modification des droits

Lighttdp est lancé en tant qu’utilisateur www-data, sans en connaître la portée, il est indispensable d’enregistrer notre utilisateur pour modifier les fichiers du serveur

sudo chown -R www-data:www-data /var/www # l'utilisateur et le groupe www-data est propriétaire de /var/www
sudo usermod -a -G www-data pi # ajoute l'utilisateur pi au groupe www-data
sudo chmod -R g+ws /var/www # attribution automatique des fichiers et répertoires au groupe www-data
groups pi # vérifie l'abonnement de l'utilisateur aux groupes

En cas de doute ou pour debuggage, une solution moins fine avec visudo :

sudo visudo
www-data ALL=(ALL) NOPASSWD: ALL # à mettre en fin de fichier

2/ Installation de PHP5

sudo apt-get install php5-cgi 

Une fois installé, il est nécessaire d’activer le module PHP de lighttpd

sudo lighttpd-enable-mod fastcgi
sudo lighttpd-enable-mod fastcgi-php

Créer un fichier index.php et y taper du code php.

<html>
   <body>
      <h1>Ceci est le test HTML</h1>
      <?php echo 'Ceci est le test PHP'; ?>
   </body>
</html>

Supprimer le fichier index.html se trouvant à la racine du serveur /var/www/ et saisir l’adresse Ip du raspberry dans la barre d’url d’un navigateur distant.
Le fichier php doit être exécuté.

3/ Activation de python 2.X dans l’interface CGI

Par défaut Pyhton est déjà installé sur Wheezy, il suffit donc d’activer et de configurer le module CGI de lighttpd.
Activer le module dans /etc/lighttpd/lighttpd.conf

server.modules = (
          ...
          "mod_cgi", # En profiter pour désactiver les modules inutiles
          ...
)

# Modifier la ligne
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".py" ) 

Configuration du module CGI avec le fichier /etc/lighttpd/conf-available/10-cgi.conf

#server.modules += ( "mod_cgi" ) # laisser commenté c'est déjà activé dans lighttpd.conf
$HTTP["url"] =~ "^/cgi-bin/" { # exécute les script CGI contenu uniquement dans /var/www/cgi-bin
          cgi.assign = ( ".py" => "/usr/bin/python" ) # à modifier en fonction de la version pyhton
}

## On laisse le reste sous commentaire
#cgi.assign      = (
#       ".pl"  => "/usr/bin/perl",
#       ".py"  => "/usr/bin/python",
#) 

Créer le répertoire /var/www/cgi-bin et y glisser un script python.

sudo mkdir /var/www/cgi-bin

Relancer le service Lighttpd

sudo service lighttpd stop
sudo service lighttpd start

Ouvrir un navigateur distant et taper l’url adresseIP/cgi-bin/monScript.py, le script python doit être exécuté.

Pour créer un alias, pour par exemple pointer un dossier cgi-bin se trouvant en dehors de la racine, il suffit d’ajouter la ligne ci-dessous en fin de fichier /etc/lighttpd/lighttpd.conf

alias.url = ( "/cgi-bin/" => "/usr/lib/cgi-bin/" )

Pour faire enregistrer la camera du Raspberry dans un répertoire du serveur, il est nécessaire d’attribuer les droits nécessaires au device.

sudo chmod 777 /dev/vchiq # manipulation à faire à chaque démarrage du Raspberry

So, what do you think ?

You must be logged in to post a comment.