Installation d'un serveur LAMP sur Debian 13¶

Informations¶
- Auteur : Louis MEDO
- Date : 15/10/2026
- Domaine : Exploitation des services
1. Sommaire¶
- 1. Sommaire
- 2. Contexte
- 3. Installation d'Apache 2.4
- 4. Installation de PHP 8.4 (PHP-FPM)
- 5. Installation de MariaDB
2. Contexte¶
Déploiement d'un socle d'hébergement Web basé sur la pile LAMP (Linux, Apache, MariaDB, PHP) sous Debian 13. Ce service permet de motoriser des applications Web dynamiques au sein de l'infrastructure en assurant le traitement des requêtes HTTP avec Apache, l'exécution des scripts côté serveur de manière optimisée avec PHP-FPM et le stockage des données relationnelles via MariaDB.
3. Installation d'Apache 2.4¶
3.1. Mise à jour et installation. Mise à jour du cache des paquets et installation du paquet apache2 afin d'obtenir la dernière version d'Apache 2.4.
3.2. Activation du service. Configuration pour qu'Apache démarre automatiquement au démarrage de la machine.
3.3. Activation des modules requis. Activation des modules indispensables comme la réécriture d'URL, la compression (deflate), les en-têtes (headers), le SSL et HTTP/2.
rewrite: module utilisé pour la réécriture d'URL[cite: 2].deflate: gestion de la compression, notamment en gzip[cite: 2].ssl: gestion des certificats SSL pour l'utilisation du protocole HTTPS.
4. Installation de PHP 8.4 (PHP-FPM)¶
4.1. Installation du gestionnaire PHP-FPM. Installation de PHP-FPM pour optimiser l'utilisation des ressources du serveur et gérer plus de connexions simultanées.
4.2. Configuration d'Apache pour PHP-FPM. Activation des modules nécessaires au fonctionnement de PHP-FPM et de son fichier de configuration.
4.3. Configuration du VirtualHost. Ajout d'une instruction spécifique à la configuration de chaque VirtualHost pour que PHP-FPM traite les scripts PHP au niveau d'Apache.
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.4-fpm.sock|fcgi://localhost/"
</FilesMatch>
4.4. Installation des extensions PHP. Ajout des paquets supplémentaires indispensables selon l'application à déployer.
Sécurité du fichier phpinfo.php
La page générée par la fonction phpinfo() donne énormément d'informations sur toute la configuration de PHP et de notre serveur Apache]. Il est fortement recommandé de ne pas laisser cette page accessible par n'importe qui en production.
5. Installation de MariaDB¶
5.1. Installation du SGBD. Installation de MariaDB, un système très performant et fork communautaire de MySQL.
5.2. Démarrage du service. Activation du démarrage automatique de l'instance de base de données.
5.3. Sécurisation de l'instance. Exécution du script de sécurisation pour définir un mot de passe pour le compte root, empêcher les connexions distantes via root, empêcher les connexions anonymes et supprimer la base de test.
Exemple de configuration :
NOTE: MariaDB is secure by default in Debian. Running this script is
useless at best, and misleading at worst. This script will be
removed in a future MariaDB release in Debian. Please read
/usr/share/doc/mariadb-server/README.Debian.gz for details.
Enter root user password or leave blank:
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
- Removing privileges on test database...
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!