🐧 TUTORIEL PAS À PAS

⚙️ Serveur LAMP sur Debian 13

📅 Mis à jour : Août 2026 ⏱️ Durée : 45 min 📋 Niveau : Débutant / Intermédiaire 🐧 Debian 13 🌐 Apache 🐬 MariaDB 🐘 PHP

LAMP est l’acronyme de Linux, Apache, MySQL (ou MariaDB) et PHP. C’est la pile logicielle la plus répandue pour héberger des sites web dynamiques, des CMS comme WordPress, ou des applications métier. Ce tutoriel vous guide pas à pas dans l’installation et la configuration de chaque composant sur Debian 13.

📖 Définition : Une pile LAMP est un ensemble de logiciels open source qui, combinés, permettent de créer et d’exécuter des applications web. Chaque élément a un rôle précis :
📌 Prérequis :

1 Mise à jour du système et installation d’Apache

1.1 – Mise à jour des paquets
Avant toute installation, mettez à jour la liste des paquets et le système. Cette étape est essentielle pour bénéficier des dernières corrections de sécurité.
$ sudo apt update && sudo apt upgrade -y
✅ Système à jour.
1.2 – Installer Apache
Apache est le serveur web. Installez-le avec ses dépendances.
$ sudo apt install apache2 -y
✅ Apache installé.
1.3 – Vérifier le service Apache
Le service apache2 doit être actif et démarré automatiquement au boot.
$ sudo systemctl status apache2
Si ce n’est pas le cas, démarrez-le :
$ sudo systemctl start apache2
$ sudo systemctl enable apache2
✅ Apache est en cours d’exécution.
1.4 – Tester Apache
Ouvrez un navigateur et accédez à l’IP de votre serveur : http://IP_DU_SERVEUR. Vous devriez voir la page par défaut d’Apache (ou une page de test).
http://IP_DU_SERVEUR
✅ Apache répond.

2 Installation de MariaDB

ℹ️ À savoir : Debian 13 utilise par défaut MariaDB, un fork de MySQL maintenu par la communauté. Les commandes et fonctionnalités sont identiques.
2.1 – Installer MariaDB
$ sudo apt install mariadb-server mariadb-client -y
✅ MariaDB installé.
2.2 – Démarrer et activer le service
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
✅ MariaDB est actif.
2.3 – Sécuriser l’installation
MariaDB installe un script de sécurisation qui permet de :
  • Définir le mot de passe root.
  • Supprimer les utilisateurs anonymes.
  • Désactiver l’accès root à distance.
  • Supprimer la base de données de test.
$ sudo mysql_secure_installation
Suivez les instructions interactives. Répondez Y (Yes) à toutes les questions.
✅ Installation sécurisée.

3 Installation de PHP et intégration avec Apache

3.1 – Installer PHP et l’extension Apache
Nous installons php, l’extension libapache2-mod-php pour intégrer PHP à Apache, et quelques modules couramment utilisés.
$ sudo apt install php php-mysql php-curl php-gd php-intl php-mbstring php-xml php-zip -y
Liste des modules :
  • php-mysql : connexion à MariaDB/MySQL.
  • php-curl : requêtes HTTP.
  • php-gd : manipulation d’images.
  • php-intl : internationalisation.
  • php-mbstring : chaînes multioctets.
  • php-xml : parsing XML.
  • php-zip : gestion des archives ZIP.
✅ PHP et ses modules installés.
3.2 – Redémarrer Apache
Le module PHP doit être activé. Un redémarrage d’Apache est nécessaire.
$ sudo systemctl restart apache2
✅ Apache rechargé avec PHP.
3.3 – Tester PHP
Créez un fichier info.php dans le répertoire racine d’Apache.
$ sudo echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Accédez à http://IP_DU_SERVEUR/info.php. Vous devriez voir la page d’informations PHP.
⚠️ Sécurité : Supprimez ce fichier après le test, car il révèle des informations sensibles.
$ sudo rm /var/www/html/info.php
✅ PHP fonctionne avec Apache.

4 Création d’une base de données et d’un utilisateur

4.1 – Se connecter à MariaDB en tant que root
$ sudo mysql -u root -p
Saisissez le mot de passe root que vous avez défini lors de la sécurisation.
4.2 – Créer une base de données
Exemple : création d’une base nommée exemple_db.
MariaDB [(none)]> CREATE DATABASE exemple_db;
✅ Base créée.
4.3 – Créer un utilisateur avec des droits
Créons un utilisateur exemple_user avec un mot de passe fort, et donnons-lui tous les droits sur exemple_db.
MariaDB [(none)]> CREATE USER 'exemple_user'@'localhost' IDENTIFIED BY 'MotDePasseFort123!';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON exemple_db.* TO 'exemple_user'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
Pour quitter l’invite MariaDB :
MariaDB [(none)]> EXIT;
✅ Utilisateur créé et privilèges attribués.
💡 Bonne pratique : N’utilisez jamais le compte root pour vos applications. Créez toujours un utilisateur dédié avec les droits minimaux nécessaires.

5 Test de connexion à la base de données via PHP

5.1 – Créer un script PHP de test
Créez un fichier test_db.php dans /var/www/html/ avec le contenu suivant :
$ sudo nano /var/www/html/test_db.php
Collez le code suivant (adaptez les identifiants) :
<?php
$host = 'localhost';
$db = 'exemple_db';
$user = 'exemple_user';
$pass = 'MotDePasseFort123!';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  PDO::ATTR_EMULATE_PREPARES => false,
];

try {
  $pdo = new PDO($dsn, $user, $pass, $options);
  echo "✅ Connexion réussie à la base de données !";
} catch (PDOException $e) {
  echo "❌ Erreur : " . $e->getMessage();
}
?>
Sauvegardez le fichier (Ctrl+O, puis Ctrl+X dans nano).
5.2 – Tester dans le navigateur
Accédez à http://IP_DU_SERVEUR/test_db.php. Si tout est correct, vous verrez « ✅ Connexion réussie à la base de données ! ».
✅ La pile LAMP est opérationnelle !

6 Conseils et bonnes pratiques

1. Configurer le pare-feu
Autorisez les ports HTTP et HTTPS si vous utilisez ufw (ou iptables).
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
2. Activer les modules Apache utiles
Par exemple, mod_rewrite pour les URL propres, ou mod_ssl pour HTTPS.
$ sudo a2enmod rewrite
$ sudo a2enmod ssl
$ sudo systemctl restart apache2
3. Optimiser les paramètres PHP
Le fichier /etc/php/8.x/apache2/php.ini permet de régler la mémoire, la taille des fichiers uploadés, etc. Adaptez les valeurs selon vos besoins.
4. Utiliser HTTPS avec Let’s Encrypt
Pour sécuriser vos sites, installez Certbot :
$ sudo apt install certbot python3-certbot-apache -y
$ sudo certbot --apache -d mon-domaine.com
5. Sauvegarder vos données
Exportez régulièrement vos bases de données et vos fichiers.
$ mysqldump -u root -p exemple_db > backup.sql

Test de validation

🎉 Installation réussie si :


📚 Ressources complémentaires


← Retour au portail
BTS SIO – Lycée NDLP Avranches – Tutoriel LAMP v1.0