La mise en place d’un serveur Web sur le Raspberry-Pi peut s’avérer très intéressante. Elle permet notamment de se familiariser avec l’installation et la configuration d’un serveur Linux.
Personnellement, je ne vous conseillerais pas d’héberger un projet de site web depuis un Raspberry-Pi. Même si la solution fonctionne parfaitement, mieux vaut confier l’hébergement d’un site internet à des prestataires comme OVH ou 1&1. Notamment pour des notions de fiabilité et de gestion. Le coût est plutôt faible, il varie d’un prestataire à l’autre (Environ 20-25€/an).
Malgré tout, si vous souhaitez mettre en place une solution simple, légère, gratuite et totalement configurable, la solution présente ci-dessous et un très bon début.
Voici également d’autres utilisations possibles d’un serveur web sur le Raspberry-Pi :
- Serveur Web pour tester les différents thèmes et plugins de WordPress.
- Afficher un Tableau de bord de monitoring.
- Etc…
[toc]
Un serveur web sous Raspbian
Avant de débuter l’installation à proprement parler, penser bien à mettre votre Raspberry-Pi à jour avec les commandes suivantes :
sudo apt-get update sudo apt-get upgrade
Installation d’Apache
Apache HTTP Server (Apache) est un logiciel libre. C’est un serveur HTTP créé et maintenu au sein de la fondation Apache. C’est le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache.
Nous allons donc commencer par installer d’Apache. Pour ce faire, connectez-vous en local sur le Raspberry-Pi en SSH ou VNC.
sudo aptitude install apache2
Valider ensuite lorsque l’on vous demande de continuer.
Do you want to continue? [Y/n/?] y
Configuration d’Apache
Passons maintenant à la configuration d’apache. Pour ce faire, on se place dans le répertoire fraîchement créé :
cd /etc/apache2/ ls
Vous devez ainsi trouver dans le répertoire les dossiers suivants :
- apache2.conf
- envvars
- mods-available
- ports.conf
- sites-enabled
- conf.d
- magic
- mods-enabled
- sites-available
Adresses et Ports
Apache peu ainsi écouter sur différentes adresses et ports, pour cela il faut éditer le fichier ports.conf.
Dans ce fichier, les directives sont :
- NameVirtualHost *: 80 (définis un VirtualHost.)
- Listen 80 (spécifie à apache le ou les ports à écouter).
Exemple :
nano ports.conf
Sécurité
Les informations concernant la sécurité se trouvent dans le fichier « conf.d/security » :
sudo nano /etc/apache2/conf.d/security
Changer dans ce fichier les lignes suivantes :
- ServerTokens Prod (envoi des informations (comme l’OS et la version d’Apache) aux clients).
- ServerSignature Off (donne des informations en bas des pages d’erreurs).
- TraceEnable Off (la méthode TRACE est réservée pour le débogage).
VirtualHosts
Les VirtualHosts (hôtes virtuels) permettent de scinder le serveur en plusieurs sites.
Pour en créer, spécifier un fichier du nom de votre site dans « sites-available » :
sudo nano /etc/apache2/sites-available/sitetest
Voila pour la partie configuration.
Vérification du fonctionnement d’Apache
Une fois l’installation d’apache réalisé, nous allons tester son fonctionnement.
Pour ce faire, lancer votre navigateur web favori, et spécifier l’adresse IP de votre Raspberry-Pi et le port concerner. Dans mon cas (192.168.1.20:80). Vous devriez alors voir apparaitre le message suivant :
Si vous avez un message d’erreur ou autre, n’hésiter pas à regarder les dernières lignes du log d’erreur (tail /var/log/apache2/error.log). Auxquels cas, il se peut que le firewall bloque l’accès. Dans ce cas, taper la commande suivante (iptables -L | grep ‘DROP’).
Installation de PHP 5
PHP: Hypertext Preprocessor, plus connu sous son sigle PHP (acronyme récursif), est un langage de programmation libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n’importe quel langage interprété de façon locale. PHP est un langage impératif orienté objet.
Pour que notre serveur puisse interpréter le langage PHP, il nous faut l’installer. On lance ainsi la commande suivante :
sudo aptitude install php5
Vérification du fonctionnement PHP
Pour vérifier le bon fonctionnement de PHP, diriger vous vers le répertoire suivant :
cd /var/www/
Supprimer alors le fichier index.html
sudo rm index.html
Puis créer un fichier nommé « index.php »
sudo nano index.php
Puis ajouter le code suivant dans le fichier.
echo "<?php phpinfo(); ?>" > /var/www/index.php
Diriger vous alors sur votre navigateur et spécifier le chemin d’accès dans l’URL (Adresse Ip de votre Raspberry/Nom du fichier créer).
Soit dans mon cas > http://192.168.1.20/index.php.
Vous devriez alors avoir à l’écran des informations sur la version PHP.
Installation du MySQL
MySQL est un système de gestion de bases de données relationnelles (SGBDR). Il est distribué sous une double licence GPL et propriétaire. Il fait partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le grand public (applications web principalement) que par des professionnels.
Maintenant passons à l’installation de MySQL :
sudo aptitude install mysql-server php5-mysql
Lors de l’installation, il vous sera demandé un mot de passe pour le compte administrateur de MySQL. Prenez bien soin de le noter, car il risque de vous être utile par la suite.
Sécurisation de MySQL
Pour sécuriser MySQL, taper la commande suivante « mysql_secure_installation«
Il vous sera alors demandé le mot de passe root MySQL entré précédemment, vous pourrez ainsi :
- Changer le mot de passe
- Enlever l’accès anonyme
- Empêcher l’accès root depuis un autre ordinateur
- Supprimer la base de données de test et son accès
- Recharger la table des privilèges.
Vérification du fonctionnement de MySQL
Pour vérifier si MySQL fonctionne correctement, nous allons taper la ligne de commande suivante « mysql –user=root –password=votrepasswd«
Un message de « bienvenue » devrez alors apparaître avec un prompt (mysql>).
Vous avez maintenant un serveur Web complètement fonctionnel !
Sources: wikipedia, MySQL, PHP.
Partie optionnelle
Si vous souhaitez allez plus loin vous avez la possibilité d’installer PhpMyAdmin ou encore un Serveur FTP :
Installation de PhpMyAdmin
Pour terminer, nous allons installer PhpMyAdmin.
PHPMyAdmin est une application développée en PHP, et qui fournit une interface simplifiée pour MySQL.
Elle permet par exemple de voir rapidement et de façon lisible le contenu de votre base de données, ou de la manipuler sans avoir besoin de faire vous-mêmes vos requêtes MySQL.
Pour qu’Apache n’affiche pas d’erreur, nous allons créer le dossier « /var/www/sql.sitetest.fr/ » :
sudo apt-get install phpmyadmin
Lors de l’installation de PhpMyAdmin, sélectionner « apache2 » comme serveur Web. Utiliser ensuite le choix par défaut pour la configuration de la base « dbconfig-common ».
Pour le mot de passe, il s’agit de celui précédemment utilisé avec MySQL.
Une fois l’installation terminé, on va déplacer le dossier pour qu’il soit visible « en ligne ».
sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin
Vérification de PhpMyAdmin
Pour vérifier le bon fonctionnement de PHPMyAdmin, vous allez y accéder, en utilisant l’adresse de votre Raspberry suivi de /phpmyadmin. Par exemple, « http://192.168.1.20/phpmyadmin ».
Installation d’un FTP (ProFTPD)
Nous allons maintenant passer à l’installation du serveur FTP :
sudo apt-get install proftpd
Valider ensuite lorsque l’on vous demande de continuer.
Do you want to continue? [Y/n/?] y
Un fois sur l’écran de configuration de ProFTPD vous aurez le choix entre deux options. Sélectionner « Standalone » (permet de démarrer ProFTPD indépendamment).
Configuration du Serveur FTP
Ouvrer le fichier proftpd.conf comme ci-dessous :
sudo nano /etc/proftpd/proftpd.conf
Puis modifier les paramètres suivants :
- ServerName : « Serveur de test »
- ServerType : standalone
- Décommenter la ligne « DefaultRoot »
- Port : 21
On redémarre maintenant le serveur FTP :
sudo /etc/init.d/proftpd restart
Vérification de ProFTPD
Pour vous connecter à votre Raspberry-Pi en FTP, je vous conseille de passer par le logiciel FileZilla.
Spécifier les identifiants dans les champs suivant :
- Hôtes : Adresse IP de votre Raspberry. (Exemple : « 192.168.1.20 »)
- Identifiant : Idem identifiant de connexion SSH
- Mot de passe : Idem mot de passe de connexion SSH
- Port : Par défaut « 21 »
Cliquer ensuite sur « connexion » et vous devriez ainsi voir l’ensemble des fichiers présent sur votre Raspberry-Pi.
Pour ajouter un site internet, comme un site WordPress, placer les fichiers dans le repertoire > /var/www.
Pour en savoir plus sur les droits d’accès au fichier > Linuxpedia