article

Serveur web personnel sur Raspberry Pi

Par  Benjamin

Publié le 16 avril 2019

Retrouvez-nous sur BlueSky, Facebook et Mastodon.

Pour se lancer dans le développement de site internet, il vous faut un brin de patience, mais aussi de quoi tout casser sans risque. Le Raspberry Pi est idéal pour ça, car vous pourrez comprendre comment ça fonctionne, et en cas de problème vous avez la main pour réparer. Afin d'avoir l'installation la plus légère j'ai choisi Raspbian Stretch Lite, l'image la plus minimale. Vous verrez que dans bien des cas, c'est le meilleur choix possible. Ici, nous ajouterons les services suivants : - Apache2 (serveur HTTP mondialement utilisé) - PHP (langage pour produire des pages web dynamique) - MySQL (système de gestion de basses de données) - phpMyAdmin (application web pour gérer les basses de données) - FTP (protocole de transfert de fichiers) Avant de tout installer vous invite à lancer une petite mise à jour.
$ sudo apt-get update
$ sudo apt-get upgrade

Apache2

Nous allons installer la première brique, je sais c'est émouvant.
$ sudo apt-get install apache2
Maintenant pour allons vous donner les droits d'écriture et lecture dans le dossier html. Ce dossier se situe dans /var/www, pour l'installation d'autres outils, comme Wordpress ou autres, il vous faudra redescendre les droits au dossier /var/www. Il vous suffira d'enlever HTML des commande si dessous, mais de laisser le dernier slash "/" surtout.
$ sudo chown -R pi:www-data /var/www/html/
$ sudo chmod -R 770 /var/www/html/
Si votre Raspberry Pi est en ligne avec un petit "ifconfig" (sans les guillemets) vous pouvez connaître votre ip locale et vérifier dans un navigateur que tout fonctionne avec une adresse du genre :
http://171.0.1.11
Si vous n'avez pas d'interface autre que le Raspberry Pi en console, c'est que vous êtes un troll et il vous faudra faire cette commande:
$ wget -O verif_apache.html http://171.0.1.11
Cette commande va enregistrer dans le répertoire dédié au web la page de vérification apache. Vous pouvez normalement lire le fichier avec la commande suivante :
$ cat ./verif_apache.html
Maintenant Apache2 utilise votre répertoire /var/www/html. Le port par défaut c'est le :80. Si vous avez une box, ouvrez les vannes et vous pourrez accéder depuis l'extérieur à votre serveur. En locale c'est l'adresse de votre Raspberry Pi.

PHP

C'est pas plus compliqué que le reste car vous êtes maintenant un futur geek qui quitte toute vie sociale. On attaque avec cette commande pour l'installation de PHP:
$ sudo apt-get install php php-mbstring
On va supprimer la page Apache de test précédente:
$ sudo rm /var/www/html/index.html
Nous allons maintenant créer un nouveau fichier pour vérifier que ça fonctionne:
$ echo "" > /var/www/html/index.php
Normalement si vous taper dans un navigateur l'adresse locale de votre serveur, la page apache aura changée:
http://171.0.1.11

MySQL

La part importante du gâteau c'est maintenant avec la gestion de bases de données que l'on va installer:
$ sudo apt-get install mysql-server php-mysql
Normalement ça fonctionne, nous allons vérifier:
$ sudo mysql --user=root
Puis nous allons créer un nouvel utilisateur root et mettre en place un nouveau mot de passe. Donc vous changez 'password' dans le texte, ou vous êtes un fifou.
DROP USER 'root'@'localhost';
Attention c'est à cette prochaine commande que vous devez taper le nouveau mot de passe:
CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
Si tout est OK taper pour sortir Ctrl+C ou simplement "exit".

phpMyAdmin

Ici vous entrez la commande si dessous, à la pernière question vous sélectionnez "Apache" et à la deuxième sur utilisation de dbconfig-common, vous dites "non". Nous avons déjà configuré ce qu'il faut. N'oubliez pas que le l'utilisateur c'est "root" et le mot de passe que vous avez choisi.
sudo apt install phpmyadmin
Maintenant on créé un lien vers nos dossiers:
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

FTP

Ici je ne vais pas approfondir, simplement vous donner de quoi gérer votre Raspberry en FTP. Attention ce n'est pas sécuriser dans les transferts, car pour ça il faut du SFTP. Mais si vous débutez aucun intérêt pour le moment. Le port ici sera le :21 et l'accès se fait avec votre nom d'utilisateur du Raspberry c'est "pi" et votre mot de passe. Par défaut si vous ne l'avez pas changé c'est "raspberry". Lançons l'installation:
$ sudo apt-get install proftpd

En résumé

Vous avez un petit serveur de travail très efficace, pédagogiquement c'est idéal pour comprendre et s'entraîner. Oui, vous allez faire des boulettes et apprendre de vos erreurs ! Pour l'usage du HTTPS et du SFTP, j'y reviendrais dans un prochain tutoriel.
Crédit image: Martijn Baudoin sur Unsplash