Un mini serveur Web avec un Raspberry
Page mise à jour le 06-01-2026 à 23:21
Il m'est arrivé de devoir proposer aux utilisateurs un portail intranet essentiellement composé de liens.
Une aussi faible charge ne justifiant pas la mise en place d'un serveur, mon choix s'est naturellement orienté vers un Raspberry.
A l'usage, cette solution on ne peut plus économique s'est avérée particulièrement efficace pour le job demandé.
En poussant plus loin mes tests j'ai fait tourner de manière fluide des pages développées en PHP et MySQL.
Avant de commencer

Les avantages du Raspberry :
  • Coûts négligeables tant pour l'acquisition qu'en consommation électrique.
  • Son faible encombrement lui permet de trouver sa place dans un coffret de brassage.
  • Son système supporte très bien les coupures d’alimentation et redémarre automatiquement.
  • La version Lite de Raspberry Pi OS démarre en 20 secondes et consomme très peu de ressources.
Fiche technique du Raspberry Pi 3B+
Type de produit Nano-ordinateur
Marque Raspberry
Modèle Pi 3B+
Type de stockage Carte Micro-SD
Processeur (CPU) Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz
Mémoire vive (RAM) 1GB LPDDR2 SDRAM
Processeur graphique (GPU) VideoCore IV
Ports USB 4 x USB 2.0
Port Ethernet Gigabit Ethernet over USB 2.0 (maximum throughput 300 Mbps)
Wireless 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2, BLE
Ports GPIO / MPI DSI / MPI CSI Extended 40-pin GPIO header / CSI camera port / DSI display port
Port HDMI Full-size HDMI
Audio 4 poles stereo output and composite video port
Alimentation micro USB (5V – 2.5A)
POE Power-over-Ethernet (PoE) support (requires separate PoE HAT)
Dimensions 85mm x 56mm

Prérequis
Un Raspberry Pi 3B+
Une carte microSD (8Go mini, 64Go maxi, 16Go conseillé)
La version de Raspberry Pi OS Lite x64 Debian 11 Bullseye qui est disponible ici ou sa dernière version depuis le site officiel
Dans tous les cas l'archive est à décompresser avec 7zip

Conventions
Considérons le réseau local configuré comme suit :
ID réseau 192.168.1.0
Masque de sous-réseau 255.255.255.0
Adresse IP du routeur 192.168.1.1
Passerelle 192.168.1.1
Serveur DNS 192.168.1.1
Adresse IP du Raspberry 192.168.1.251
Nom du Raspberry raspi-server
Il vous appartient d'adapter ces paramètres à votre environnement.

Administration
Nous administrerons le serveur à distance et j'utilise pour cela un poste client Microsoft doté du sous-système Windows pour Linux.
Vous trouverez ici comment installer Debian sous Windows 10 ainsi que les deux excellents outils que sont Windows Terminal et WinSCP.
(passez cette étape si vous préférez utiliser une autre méthode).

A savoir :
Sur un Raspberry, le nom d'utilisateur par défaut est pi et le mot de passe par défaut est raspberry
Le mot de passe devra être orthographié rqspberry si le clavier est reconnu en tant que QWERTY

Premier démarrage du Raspberry

Formatez la carte microSD avec SD Card Formatter (facultatif)
Flashez sur la carte microSD l’image iso raspios-xxxxxx-arm64-lite.img avec Win32DiskImager

Insérez la carte microSD et connectez l’alimentation.

Si vous n'obtenez pas d’affichage au démarrage du Raspberry (problème constaté avec certains convertisseurs HDMI/VGA)
Insérez la carte microSD dans un lecteur USB et éditez le fichier /boot/config.txt
Décommentez les lignes suivantes en appliquant ces paramètres.
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=81
hdmi_drive=2

Configuration du Raspberry

Le système Raspberry Pi OS s'installe puis démarre sur un assistant.

Configurez le clavier azerty
Generic 105-key PC (intl.) -> Other -> French -> The default for the keyboard layout -> No compose key

L'assistant vous demandera ensuite de créer votre compte utilisateur.

Configurez les autres options régionales
sudo raspi-config
    5 Localisation Options
        L1 Locale       -> fr_FR.UTF-8 UTF-8 -> fr_FR.UTF-8
        L2 Timezone     -> Europe -> Paris

Exécutez une à une les commandes suivantes
# changement du mot de passe root
sudo passwd root

# mappages IP / noms d’hôtes
sudo nano /etc/hosts
    127.0.0.1 raspi-server
    192.168.1.251 raspi-server

# nom d’hôte de la machine
sudo nano /etc/hostname
    raspi-server

# configuration TCP/IP
sudo nano /etc/dhcpcd.conf
    interface eth0
    static ip_address=192.168.1.251/24
    static routers=192.168.1.1
    static domain_name_servers=192.168.1.1

# application des nouveaux paramètres TCP/IP
sudo /etc/init.d/networking restart

# activation du protocole SSH
sudo systemctl enable ssh

# autoriser le compte root à se connecter en SSH
sudo nano /etc/ssh/sshd_config
    PermitRootLogin yes

# démarrage du service SSH
sudo systemctl start ssh

# redémarrage du système
sudo reboot

Installation des services Web

Il est plus pratique de poursuivre les opérations depuis un poste client.

Initiez une connexion SSH vers le Raspberry
ssh root@192.168.1.251

Mettez à jour le cache des dépôts et installez Apache
apt-get update
apt-get install apache2

Recherchez et installez la dernière version de PHP
apt-cache search php
apt-get install php7.4

Installez MariaDB et phpMyAdmin
apt-get install default-mysql-server
apt-get install phpmyadmin
Durant l’installation de phpMyAdmin :
• Serveur Web à reconfigurer automatiquement : apache
• Répondez oui pour dbconfig-common
• Créez un mot de passe pour l’utilisateur phpmyadmin

Le chemin de base HTTP est /var/www/html/

Testez le fonctionnement depuis un navigateur
192.168.1.251vous devez atteindre Apache2 Debian Default Page - It works !
192.168.1.251/phpmyadminl'utilisateur par défaut est phpmyadmin avec le mot de passe défini lors de l’installation.

Administration du Raspberry

Commandes
sudo /etc/init.d/apache2 restart# redémarre Apache
sudo /etc/init.d/mysql restart# redémarre MySQL
sudo /etc/init.d/ssh restart# redémarre SSH
sudo /etc/init.d/networking restart# redémarre TCP/IP
sudo dpkg-reconfigure phpmyadmin# reconfiguration de phpMyAdmin
apachectl -V# version de Apache
php -v# version de PHP
mysql -V# version de MariaDB
lsb_release -d# version de Raspbian
cat /etc/debian_version# version de Debian
cat /proc/cpuinfo | grep Model# informations sur le Raspberry

Fichiers de configuration
/etc/apache2/apache2.conf# Apache
/etc/php/7.3/apache2/php.ini# PHP
/etc/mysql/conf.d/*.cnf# MySQL
/etc/mysql/mariadb.cnf# MariaDB (options par défaut)
/etc/mysql/mariadb.conf.d/*.cnf# MariaDB
/etc/phpmyadmin/config-db.php# phpMyAdmin
/etc/apache2/ports.conf# Ports
/etc/resolve.conf# DNS
/etc/hosts# Mappage IP/Nom d'hôtes
/etc/hostname# Nom d'hôte de la machine
/etc/dhcpcd.conf# Configuration TCP/IP

Comptes d'utilisateurs MariaDB
# entrer dans le shell MySQL
sudo mysql -u root
> MariaDB [(none)]> use mysql;
> MariaDB [mysql]>

# créer un compte utilisateur avec mot de passe
> create user <utilisateur>@localhost identified by '1234567';

# changer ou créer le mot de passe d'un utilisateur
> set password for <utilisateur>@localhost=password('7654321');

# donner tous les droits sur toutes les entités à un utilisateur (privilèges équivalents à root)
> grant all privileges on *.* to <utilisateur>@localhost;

# afficher les comptes utilisateurs, les hôtes et les plugins d’authentification
> select user, host, plugin from mysql.user;
+-------------+-----------+-----------------------+
| user        | host      | plugin                |
+-------------+-----------+-----------------------+
| root        | localhost | unix_socket           |
| phpmyadmin  | localhost |                       |
+-------------+-----------+-----------------------+
| utilisateur | localhost | mysql_native_password |
+-------------+-----------+-----------------------+

# quitter et redémarrer le service MySQL
> exit
sudo /etc/init.d/mysql restart
Le plugin du compte root est défini sur unix_socket, cela signifie que ce compte est lié au compte root du système.
Il est déconseillé d’apporter des modifications aux comptes mysql dont le plugin est défini sur unix_socket.
Le mot de passe de l’utilisateur phpmyadmin se modifie depuis le fichier /etc/phpmyadmin/config-db.php

Ajouter et retirer un média de stockage USB
df -h# liste les partitions
sudo mkdir /mnt/volume# crée le point de montage /volume
sudo mount /dev/sda1 /mnt/volume# monte le media /dev/sda1 sur le point de montage /volume

# adapter le nom sda1 pris en exemple


sudo umount /mnt/volume# démonte le media
sudo lsof /mnt/volume# démonte le media en force (lsof peut demander à être installé)

Monter le media de stockage USB au reboot
crontab -e# édite le cron de l’utilisateur courant
@reboot sudo mount /dev/sda1 /mnt/volume# ligne à ajouter dans le cron

Installer les drivers pour médias de stockage USB exFat ou NTFS
# afficher le format des partitions
sudo lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL

# installer les drivers pour des partitions exFAT
sudo apt install exfat-fuse

# installer les drivers pour des partitions NTFS
sudo apt install ntfs-3g
Papy WinTux - Philippe DESLOGES - 2023-2026 - Powered by Debian - Apache 2.4.54 - PHP 7.4.33 - Last update 06-01-2026 23:21 - Page size 30 ko built in 0 ms
All trademarks, logos, images and documents on these pages belong exclusively to their respective owners.