Nous avons maintenant les trois conteneurs de notre stack en fonctionnement :
apache
php
mariadb
Ils sont tous connectés au réseau :
monprojet-network
Dans ce premier TP, nous allons mettre en place un petit site PHP capable de se connecter à la base de données MariaDB et d’afficher simplement :
Connexion BDD OK
L’objectif n’est pas de créer une application complexe, mais de valider que tous les conteneurs communiquent correctement entre eux.
🎯 Objectif du TP
À la fin de cet exercice, vous devrez pouvoir ouvrir votre navigateur sur :
http://localhost:8080
Ou depuis indiquant l’adresse IP du serveur hôte Docker depuis un votre ordinateur si vous avez opté pour une installation « serveur » sans interface graphique
et voir apparaître :
Connexion BDD OK
Si ce message apparaît, cela signifie que :
- Apache sert correctement les pages web
- PHP exécute les scripts
- PHP peut contacter MariaDB
- le réseau Docker fonctionne correctement
Bref : toute la stack est opérationnelle.
📁 Créer le fichier du site
Dans le dossier app que nous avons créé précédemment, créons un fichier :
app/index.php
Ajoutez le contenu suivant :
<?php
$host = "mariadb";
$db = "monsite";
$user = "monsiteuser";
$pass = "monsitepassword";
try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
echo "Connexion BDD OK";
} catch (PDOException $e) {
echo "Erreur de connexion : " . $e->getMessage();
}
Ce script PHP va simplement essayer de se connecter à la base MariaDB.
🔍 Comprendre ce script
La ligne la plus importante est :
$host = "mariadb";
Pourquoi mariadb ?
Parce que dans le réseau Docker monprojet-network, chaque conteneur est accessible par son nom.
Le conteneur PHP peut donc contacter la base de données via :
mariadb
sans connaître son adresse IP.
🌐 Tester l’application
Ouvrez votre navigateur et rendez-vous sur :
http://localhost:8080
Si tout est correctement configuré, vous devriez voir :
Connexion BDD OK
🎉 Félicitations ! Votre première application web multi-conteneurs fonctionne.
🔎 Que se passe-t-il réellement ?
Lorsqu’un utilisateur accède au site :
http://localhost:8080
le flux devient :
Navigateur
│
▼
Apache
│
▼
PHP-FPM
│
▼
MariaDB
1️⃣ Apache reçoit la requête du navigateur
2️⃣ Apache transmet le script .php au conteneur PHP
3️⃣ PHP exécute le script
4️⃣ PHP se connecte à MariaDB
5️⃣ Le message Connexion BDD OK est renvoyé au navigateur
🧪 En cas de problème
Si le message ne s’affiche pas, plusieurs vérifications sont possibles.
Vérifier les conteneurs
docker ps
Les trois conteneurs doivent être en cours d’exécution.
Vérifier les logs Apache
docker logs apache
Vérifier les logs PHP
docker logs php
Vérifier les logs MariaDB
docker logs mariadb
Les logs sont le premier outil de diagnostic lorsqu’un conteneur ne fonctionne pas comme prévu.
📌 À retenir
Dans ce TP, vous avez :
- déployé un site PHP simple
- connecté PHP à MariaDB
- validé la communication entre trois conteneurs
- testé l’ensemble via un navigateur web
Votre stack Docker fonctionne maintenant pleinement.
Dans la prochaine section, nous allons découvrir Docker Compose, qui permet de décrire toute cette architecture dans un simple fichier YAML, au lieu de lancer plusieurs commandes docker run. 🚀