Tuto : transformer un raspberry Pi en serveur web

En règle générale, lorsque j’ai besoin d’un serveur web pour faire du développement, j’utilise Mamp ou une machine virtuelle Linux avec Virtualbox.

Mais là, j’avais besoin de quelque chose de plus pérenne, destiné à fonctionner h24 pour un projet perso.

C’était donc l’occasion de ressortir le Raspberry Pi de son tiroir 🙂 .

Disclaimer : Attention, ce qui est détaillé ici est valable pour un serveur servant à faire du développement, non accessible depuis Internet et sur un réseau sécurisé. En gros, il ne contiendra pas de données importantes non sauvegardées et je suis sa seule utilisatrice. Il est évident que si vous compter y héberger des sites accessibles depuis le web, une grosse partie sécurisation d’Apache n’est pas abordée ici.

Voilà, maintenant on peut rentrer au coeur du sujet. En fait, cet article se veut plus un mémo / wiki qu’un tutoriel, et je serai sans doute la première à m’y référer lorsque j’aurai une autre installation à faire.

Installation de l’OS

Etant habituée, dans le cadre de mon activité professionnelle, à travailler sur des systèmes Debian, j’ai naturellement choisi celui-ci pour mon projet.

La première étape consiste dont à télécharger une version de Debian compatible avec mon Raspberry. Cela se passe ici : https://raspi.debian.net

Personnellement, j’ai choisi une Debian 10.

Ensuite, il faut flasher la carte sd du Raspberry. Pour cela, j’utilise le logiciel officiel : Raspberry Pi Imager, disponible pour Windows, Linux ou Mac OS : https://www.raspberrypi.org/software/

Le principe est simple : vous sélectionner votre carte SD (je vous conseille une carte d’au moins 32 gb), vous sélectionnez votre image de système d’exploitation, et c’est parti !

Une fois la carte ok, il ne reste plus qu’à l’insérer dans le Raspberry, mettre sous tension, et quand il affiche ceci :

Attention : d’origine, l’utilisateur root n’a pas de mot de passe. Vous avez juste à taper « entrée » pour vous connecter au système.

On va d’ailleurs commencer par en mettre un, de mot de passe, faut pas abuser non plus 😉 :

$ passwd

Ensuite, il faut configurer le réseau. Là, ça se passe dans le dossier /etc/network/insterfaces.d . Utilisant la carte wifi, je vais modifier le fichier wlan0 :

$ nano /etc/network/insterfaces.d/wlan0

Je configure les paramètres du réseau wifi, et une adresse ip statique, ce sera plus pratique pour la suite 🙂 :

Et on redémarre !

$ systemctl reboot

Installation du serveur

  • SSH

Nous allons d’abord nous intéresser à l’accès via ssh, comme cela, toutes les manipulations ultérieures pourront êtres faites tranquillement, depuis votre poste de travail !

Il faut donc éditer le fichier /etc/ssh/sshd_config, et passer la ligne « PermitRootLogin » à « yes » :

On sauvegarde, on redémarre le service sshd et c’est ok, on peut se connecter à distance !

$ systemctl restart sshd
  • Apache

Commencer par mettre à jour le système :

$ apt update
$ apt upgrade

Puis installer Apache via apt :

$ apt install apache2

Vous pouvez vérifier le bon fonctionnement d’Apache en vous connectant en http, via un navigateur web, à l’adresse ip du serveur. Un conseil, faire cela en mode « privé », car ça évite les surprises liées au cache du navigateur.

  • PHP

Via apt :

$ apt install php php-mbstring

Pour vérifier que PHP est ok, on peut créer un fichier « phpinfos » dans /var/www/html :

$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfos.php

En ouvrant le fichier « phpinfos.php » depuis votre navigateur web, vous devriez obtenir quelque chose comme cela :

  • Mysql

Et enfin, toujours via apt, le serveur mysql, ici MariaDB :

$ apt install mariadb-server php-mysql

Et si tout va bien, vous pouvez vous connecter à Mariadb (sans mot de passe pour le moment) :

$ mysql -u root

Et voilà, nous voici avec un serveur web opérationnel !

J’insiste fortement là dessus, mais c’est nécessaire : en l’état, il est fonctionnel mais pas du tout sécurisé. C’est ok pour du développement en local, mais c’est tout. J’aborderai peut-être la sécurisation d’une installation d’Apache dans un autre article…

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.