Mise en place d’un serveur Web sur le Raspberry-PI

serveur-web-raspberry

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…

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 commencé 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
Visuel du fichier "ports.conf"

Visuel du fichier « 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
Contenu du fichier "sitetest"

Contenu du fichier « 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 :

Test d'Apache2

Test d’Apache2

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 su 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

Partager l'article >Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInEmail this to someone

Leave A Response

* Denotes Required Field