L’ordinateur à carte unique Raspberry-pi est configurable de manière à le rendre extrêmement personnalisable. Bien que la performance de Raspberry Pi puisse sembler moindre par rapport à ses variantes commerciales, il peut être très utile de configurer un serveur Web privé. C’est notamment le cas si l’on désire tester son site Web et l’héberger ou si l’on gère soi-même les données et que l’on souhaite les rendre disponibles sur le Cloud. Ce tutoriel vous dévoile comment configurer votre propre serveur avec un paquet logiciel LAMP sur Raspberry Pi.
Si vous souhaitez utiliser un serveur Web Raspberry Pi, n’oubliez pas que le matériel présente des capacités limitées. L’ordinateur a une performance restreinte comparé aux serveurs Web ordinaires que vous pouvez louer chez un hébergeur. Raspberry Pi n’est pas adapté à l’hébergement des sites les plus complexes (par exemple pour les boutiques en ligne ou les sites Web qui comportent de nombreux contenus dynamiques), ni pour les sites qui comptent un nombre important de visiteurs. Généralement, la bande passante n’est pas suffisante avec une connexion internet privée, ce qui rend l’utilisation de Raspberry Pi plus difficile.
Il existe tout de même différents domaines d’utilisation pour un serveur Web exploité par Raspberry Pi. Il est en effet possible de l’utiliser en tant que serveur personnel avec accès Internet ou par exemple pour un réseau d’entreprise. Ainsi, un hébergement privé peut suffire pour les sites Web testés en ligne et les sites Web qui comptent peu de visiteurs. La configuration est possible sur votre propre Cloud, ainsi que la domotique (par exemple le contrôle de la lumière, du chauffage et des appareils électroménagers connectés via Raspberry Pi).
Un autre avantage repose sur les coûts très peu élevés d’un serveur Web Raspberry Pi, qui ne requiert que deux choses : un abonnement Internet et de l’électricité. La consommation de ce nano-ordinateur ne dépasse généralement pas les 5 Watts et le coût d’acquisition des différents composants est peu élevé.
Le tutoriel ci-dessous présente une des nombreuses options qui s’offrent à vous pour configurer Raspberry Pi en tant que serveur Web. Pour cela, vous aurez besoin des composants suivants en plus du nano-ordinateur :
- Une carte SD avec Raspbian en guise de système d’exploitation
- Une connexion Internet, de préférence en réseau (à privilégier au wifi)
- Une connexion électrique, de préférence par micro câble USB
Comme un serveur Web fonctionne en « headless » (c’est-à-dire sans écran ni appareil de saisie) et que cette variante est très peu gourmande en énergie, l’accès à distance sur le serveur par SSH est idéal. À l’aide d’un client SSH (comme PuTTY, WinSCP pour Windows ou OpenSSH pour systèmes d’exploitation Unix), il est possible de configurer le serveur Web via un ordinateur, un smartphone ou d’autres appareils et d’y apporter directement des modifications. Si vous vous décidez pour une administration via SSH, saisissez l’adresse IPv4 à votre client SSH sur Raspberry Pi, afin de pouvoir relier les deux. Si vous ne connaissez pas l’adresse IP de votre Raspberry Pi, utilisez la commande hostname -I (ou ifconfig) dans le terminal pour l’obtenir. Si vous souhaitez utiliser Raspberry Pi en headless, il est possible de retrouver l’adresse IP du Raspberry Pi à l’aide de votre routeur, en vous rendant sur le navigateur Web. Pour exploiter le serveur Web sur un Cloud privé ou pour d’autres applications qui requièrent également un espace de stockage important, il convient d’étendre les capacités de stockage. Ceci est facile à réaliser avec Raspberry Pi via clé USB ou avec un disque dur externe.
Les serveurs doivent être accessibles en ligne en tout temps, afin que les utilisateurs puissent y avoir accès en continu et qu’ils soient accessibles sous la même adresse IP. En règle générale, la connexion Internet d’un serveur personnel dispose d’une adresse IP dynamique. Cela signifie qu’elle change régulièrement (souvent au bout de 24 heures), afin d’éviter que le serveur soit toujours disponible sous la même adresse IP. Une adresse IP statique est un avantage majeur, mais n’est pas une solution proposée par tous les fournisseurs d’hébergement et engendre des coûts mensuels plus élevés.
Il existe cependant des solutions pour héberger un serveur sous une seule et même adresse IP : l’usage d’un DNS dynamique (DDNS). Les services DNS existent aussi bien en version payante qu’en version gratuite. Pour cela, enregistrez un nom de domaine et rattachez celui-ci à un ordinateur ou à un routeur. À l’aide d’un logiciel, le nom de domaine sera automatiquement rattaché à l’adresse IP actuelle de votre connexion Internet. De cette manière, le serveur est accessible en ligne sous le même nom en tout temps.
Le tutoriel suivant permet de mettre en place une pile logicielle LAMP pour votre serveur Web. LAMP est un acronyme pour désigner les premières lettres de quatre logiciels : Linux, Apache, MySQL et PHP. Linux est un système d’exploitation (en l’occurrence Raspbian pour Raspberry Pi), Apache sert de serveur Web, la base de données est en MySQL et le langage de script en PHP. En plus de l’ensemble logiciel LAMP, phpMyAdmin est installé. Connectez-vous à la console de saisie (le terminal) sur votre Raspberry Pi. Avant de commencer la configuration de l’ensemble logiciel LAMP, veillez à actualiser les deux commandes ci-dessous de tous les paquets qui sont déjà installés :
sudo apt-get updatesudo apt-get update
sudo apt-get upgrade
Une fois cette étape complétée, vous pouvez commencer à configurer les différents éléments du serveur LAMP. Ce tutoriel vous guide étape par étape au cours de l’installation du serveur.
L’installation du serveur Web Apache http est très rapide et cette commande correspond également aux trois autres composants LAMP du serveur Web Raspberry Pi. Pour Apache 2, il suffit de saisir la commande suivante dans le terminal :
sudo apt-get install apache2
Pour vérifier si l’opération a réussi, saisissez l’adresse IP de Raspberry Pi dans la barre URL de votre navigateur. Si vous êtes redirigé avec succès vers Apache 2, le navigateur affiche une page qui affiche la mention : « it works ! ». Cette page HTML est disponible sous Raspbian Jessie dans le dossier /var/www/html/index.html. Dans la version Wheezy de Raspbian, plus ancienne, la page HTML est disponible sous /var/www/index.html.
Vous pouvez retravailler cette page HTML dans le dossier :
sudo nano /var/www/index.html
Et
sudo nano /var/www/html/index.html
Les modifications effectuées devraient rester même une fois la page rafraîchie.
Il convient maintenant d’installer PHP5, afin que le serveur Web puisse être compatible non seulement avec PHP, mais également avec des documents HTML, CSS et JavaScript :
sudo apt-get install php5 libapache2-mod-php5
Dès à présent et sur /var/www, il est possible de créer un document PHP. Pour effectuer un test, créez un fichier phpinfo.php sous :
sudo nano phpinfo.php
Dans l’éditeur, ajoutez :
<?php phpinfo(); ?>
Si votre adresse IP Raspberry Pi est affichée, suivi de la mention /infophp.php (192.168.X.X/phpinfo.php), la page en question devrait s’afficher. Si l’opération réussit, cela signifie que PHP est configuré avec succès sur votre Raspberry Pi.
Avec MySQL, créez votre base de données du serveur Web. La commande
sudo apt-get install php5-mysql mysql-server mysql-client
permet d’installer tout le nécessaire. Après quelques minutes, vous serez amené à définir un mot de passe racine (root) pour MySQL. Une fois cette étape validée et que la création de la base de données est terminée, fermez l’installation et redémarrez MySQL (commande : sudo /etc/init.d/mysql restart) ou votre Raspberry Pi (commande : sudo reboot).
Pour l’administration de MySQL, il est nécessaire d’utiliser phpMyAdmin. À l’aide de ce logiciel gratuit, la gestion de la base de données est facilitée et vous disposez d’une interface utilisateur graphique dans le navigateur Web.
Pour l’installation, saisissez cette commande :
sudo apt-get install phpmyadmin
Dans l’écran affiché, choisissez Apache 2 en tant que serveur Web. Installez par la suite la base de gestion de données phpMyAdmin et choisissez un mot de passe pour phpMyAdmin (il peut être identique à votre mot de passe sur MySQL). Suite à cette dernière étape, l’installation est complétée.
Mais il reste encore à relier phpMyAdmin avec le serveur Web Apache. Utilisez la commande ci-dessous, puis éditez le dossier de configuration du nano éditeur :
sudo nano /etc/apache2/apache2.conf
Pointez le curseur sur la fin du dossier de configuration (utilisez simplement la combinaison de touches « cmd » + « V ») de manière répétée.
et ajoutez une nouvelle commande dans le dossier :
Include /etc/phpmyadmin/apache.conf
Il convient maintenant de sauvegarder les modifications avec le raccourci « cmd » + « O » et de fermer le dossier de configuration avec « cmd » + « X ». Démarrez le serveur Web Apache avec une nouvelle commande dans la console :
/etc/init.d/apache2 restart
Le serveur Web est à présent entièrement configuré, ainsi que sa base de données sur phpMyAdmin. Il est possible d’administrer le tout dans le navigateur Web. Pour cela, saisissez l’adresse IP du Raspberry Pi tout comme /phpmyadmin (192.168.X.X/phpmyadmin) et connectez-vous sur le site de phpMyAdmin avec le nom d’utilisateur « root » ainsi que votre mot de passe MySQL.
Une fois connecté, il est possible de lister les ensembles de données, les bases de données et d’intégrer des tableaux ou de les supprimer, entre autres.
Votre serveur Web est à présent configuré et prêt à être utilisé. Vous pouvez par exemple créer un site Web et l’héberger, en utilisant des pages HTML et PHP pour votre serveur Web. Les sites Web sont à stocker directement sur Raspberry Pi sur /var/www (Raspbian Wheezy) ou /var/www/html (Raspbian Jessie). Il existe une autre option qui consiste à utiliser un éditeur Web sur un ordinateur externe de votre choix et de les transférer sur le serveur Web à l’aide d’un logiciel client SFTP. Des programmes tels que FileZilla, WinSCP, PuTTY ou encore OpenSSH vous accompagneront dans cette tâche.
Le paramétrage du serveur Web Apache s’effectue dans le fichier de configuration .htaccess. Il est par exemple possible d’y créer une page 404 personnalisée pour votre site Web, ou encore d’effectuer une redirection de nom de domaine. Découvrez dans cet article quelles sont les dix meilleures astuces .htaccess.
L’utilisation de Raspberry Pi en tant que serveur Web permet en quelques étapes d’apprendre à créer des sites et d’administrer un serveur Web. En plus de l’hébergement de sites Web, le serveur Web comprend une multitude d’options et de possibilités. Ainsi, l’utilisation de Raspberry Pi comprend une utilisation privée des données du serveur. Avec le logiciel gratuit ownCloud, la création et l’administration de son Cloud privé est à la portée de tous. Le programme d’hébergement des dossiers permet entre autres de stocker les données sur le Cloud, d’y accéder en tout temps et de les synchroniser. La liste des différents projets qu’il est possible de mettre en place avec Raspberry Pi est longue. Avec votre propre serveur Web, même les projets les plus personnalisés sont applicables facilement.
La sécurité du serveur Web est un aspect crucial auquel veiller, notamment lorsqu’il est connecté en permanence à Internet car les chances qu’il soit attaqué sont multiples. C’est pourquoi il est nécessaire de mettre à jour le serveur Web à intervalles réguliers. Les données sensibles ne devraient être stockées sur le serveur Web uniquement si l’on peut s’assurer de savoir prendre les précautions nécessaires pour les protéger.