Debian 12 : Installation LAMP
Ce KB (Knowledge Base) est une procédure simplifiée d’installation d’un serveur LAMP qui signifie : Linux Apache MariaDB (ou MySQL) et PHP.
Un serveur LAMP fournit des services d’hébergements de sites Web statiques ou dynamiques. Dans ce KB, nous allons déployer les paquets suivants sur une distribution Debian 12.
- Apache est un serveur Web Open source.
- MariaDB va permettre de stocker les données du site dans une base de données relationnel.
- PHP est l’interpréteur de code permettant de rendre dynamique vos pages.
- Optionnellement : PhpMyAdmin pour l’administration simplifiée des bases de données.
Prérequis
Section intitulée « Prérequis »Disposer d’une machine Debian 12 (idéalement sans environnement de bureau)Connaitre les commandes de bases de l’administration sous Debian.Disposer des compétences de base en administration système et réseau.Sommaire
Section intitulée « Sommaire »Dans les prochaines étapes, nous réaliser les opérations suivantes :
- Installer Apache et vérifier son bon fonctionnement
- Installer MariaDB, sécuriser sa configuration et vérifier son fonctionnement.
- Installer PHP et vérifier son fonctionnement.
- Optionnel : Installer phpMyAdmin et vérifier son fonctionnement.
Apache HTTP Server
Section intitulée « Apache HTTP Server »Apache HTTP Server, communément appelé Apache, est un logiciel de serveur web open source largement utilisé dans le monde entier. Il est développé et maintenu par la Fondation Apache.
Apache est compatible avec de nombreux systèmes d’exploitation, il offre une grande flexibilité et une gamme étendue de fonctionnalités, ce qui lui permet de répondre à divers besoins en matière d’hébergement web.
Apache : Installation
Section intitulée « Apache : Installation »Le service Apache utilise le paquet nommé apache2.
sudo apt install apache2Vérification de l’installation et de la version d’Apache
sudo apache2 -vVérification du statut du service apache2 :
sudo service apache2 statusLa sortie de commande service devrait afficher un message comme celui-ci :

Vérifiez le port utilisé par Apache avec la commande ss
netstat -ltpn | grep "80"Apache : Vérifications et tests
Section intitulée « Apache : Vérifications et tests »Pour s’assurer du bon fonctionnement d’Apache, vous pouvez réaliser les opérations suivantes. Tester depuis un navigateur en mode texte
À savoir ! Le paquet Lynx est un navigateur web en mode console. Il permet l’affichage de page web dans la console Shell de façon textuelle.
Installer le paquet lynx (navigateur web en mode shell) :
sudo apt install lynxDans la console Shell, utiliser la commande suivant pour ouvrir localement (127.0.0.1) la page par défaut du serveur Apache :
lynx http://127.0.0.1Testez depuis un navigateur web :
Section intitulée « Testez depuis un navigateur web : »Pour ce test, vous devez disposer d’un PC client connecté au même réseau local que votre serveur LAMP. Relever l’adresse IP de votre serveur LAMP :
ip aDepuis un navigateur web sur le poste client, saisir l’adresse IP du serveur LAMP dans la barre d’adresse. La page d’accueil par défaut d’Apache s’affiche :

Créer une page de test
Section intitulée « Créer une page de test »Créer un fichier vide test.html dans le dossier html d’apache
sudo touch /var/www/html/test.htmlModifier le contenu avec l’éditeur de texte nano :
sudo nano /var/www/html/test.htmlAjouter le code html suivant et enregistrer les modifications :
<h1>Hello World !</h1><p>Bienvenue aux étudiants</p>Vérifiez l’affichage de la page avec lynx (navigateur en mode textuel) :
lynx http://127.0.0.1/test.html
Depuis un navigateur web sur le poste client, saisir l’adresse IP du serveur LAMP dans la barre d’adresse. Par exemple : http://192.168.1.1/test.html
Si l’affichage des caractères spéciaux n’est pas convenable, cela vient du jeu de caractère paramétré par défaut dans apache. Pour modifier cette configuration :
- Modifier le /etc/apache2/conf-available/charset.conf
- Décommenter la ligne AddDefaultCharset UTF-8, en supprimant le symbole # et enregistrer.

Recharger la configuration d’Apache :
sudo service apache2 reloadEn actualisant la page, l’affichage est maintenant correct.
Apache : Configuration
Section intitulée « Apache : Configuration »Pour vérifier la syntaxe des fichiers de configuration, utiliser la commande suivante (avant un restart ou un reload) :
sudo apache2ctl configtestPour redémarrer le service :
sudo service apache2 restartPour recharger les configurations
sudo service apache2 reloadMARIADB : Installation
Section intitulée « MARIADB : Installation »L’installation s’effectue avec la commande suivante :
sudo apt install mariadb-serverMARIADB : Sécurisation
Section intitulée « MARIADB : Sécurisation »La commande mariadb_secure_installation (hérité de MySQL) vous permet de :
- Modifier le mot de passe root MariaDB (vide par défaut).
- Désactiver l’accès via le compte root de MariaDB via le réseau (réduire la surface d’attaque)
- Supprimer la base de données test et les comptes anonymes créés par défaut à des fins de tests.
Exécuter la commande suivante et presser la touche :
sudo mariadb-secure-installationLorsque le message suivant s’affiche, presser la touche n (pour no) :
Switch to unix_socket authentication [Y/n] nPour toutes les questions suivantes, presser la touche Y afin d’accepter toutes les modifications proposées par le script :
- Changer le mot de passe root de MariaDB.
- Supprimer les comptes anonymes.
- Désactiver l’accès root à distance.
- Supprimer les bases de données de tests.
- Rechercher les privilèges des utilisateurs MariaDB.
Vous devriez obtenir le message final suivant
All done! If you've completed all of the above steps, your MariaDB installation should now be secure.
Thanks for using MariaDB!MARIADB : Vérifications et connexion
Section intitulée « MARIADB : Vérifications et connexion »Vérifier la version de MariaDB avec l’option -V (en majuscule)
sudo mariadb -VVérifier que vous pouvez vous connecter à votre instance MariaDB avec la commande :
sudo mariadb -u root -pUne fois connecté grâce au mot de passe root de MariaDB, saisir la requête sql suivante pour lister les bases de données de votre instance :
show databases;Voici un exemple de sortie proposé par la commande :

Utiliser la commande suivante pour quitter l’instance MariaDB :
exitInstallation de PHP
Section intitulée « Installation de PHP »Installer le paquet php :
sudo apt install phpVérifier quelle version de PHP vous venez d’installer. Exécutez la commande suivante :
sudo php -vVérifier que le moteur de script PHP est actif. Pour cela créer un fichier “phpinfo.php” à la racine de notre site Web par défaut d’apache :
sudo nano /var/www/html/phpinfo.phpDans ce fichier, indiquez le code suivant :
<?php
phpinfo();
?>Depuis un navigateur web sur le poste client, saisir l’adresse IP du serveur LAMP dans la barre d’adresse et ajouter le chemin d’accès au fichier phpinfo.ini. Par exemple :
http://192.168.1.1/phpinfo.p.html

Supprimer le fichier phpinfo.php
sudo rm /var/www/html/phpinfo.phpOptionnel : Installation de phpMyAdmin
Section intitulée « Optionnel : Installation de phpMyAdmin »phpMyAdmin est une application Web pour l’administration des SGBDR MySQL et MariaDB, réalisée principalement en PHP et distribuée sous licence GNU GPL.
Remarque ! Dans le cadre de vos tests vous pouvez envisager l’installation de cet outil sur le serveur LAMP, mais cela n’est pas préconisé dans un environnement de production. Cela augmente la surface d’attaque et rend le serveur plus vulnérable en cas de cyberattaque.
Installer le paquet phpMyAdmin :
sudo apt-get install phpmyadminChoisir le serveur Web à reconfigurer automatiquement apache2 :
- Sélectionner apache2
- Presser la touche [ESPACE] puis [ENTER]

Choisir l’option pour confirmer la configuration de phpMyAdmin avec dbconfig-common :

Depuis un navigateur web sur le poste client :
- Saisir l’adresse IP du serveur LAMP dans la barre d’adresse et ajouter le dossier phpMyAdmin. Par exemple : http://192.168.1.1/phpmyadmin
- Utiliser le compte root de MariaDB pour s’authentifier.