- 1/ Installation du serveur Lighttpd
- 2/ Installation de PHP5
- 3/ Activation de python 2.X dans l’interface CGI
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 ?