Dans ce tutoriel, nous allons explorer Docker Compose et Dockerfile pour configurer un environnement Docker contenant PHP 8.2 avec Apache, MySQL, et PhpMyAdmin. Nous apprendrons à construire un environnement complet pour exécuter un projet PHP.
Étape 1 : Initialisation du projet
Créer un dossier de projet :
mkdir mon_projet_docker && cd mon_projet_dockerCréer le fichier docker-compose.yaml : Ce fichier est au cœur de la configuration de vos conteneurs Docker.
Exemple :
services:
php:
image: php:8.2-apache
container_name: php_82
ports:
- 8000:80
volumes:
- ./php:/var/www/html
db:
image: mysql:8.0
container_name: mysql_8
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: demo
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- "3307:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: rootpassword
ports:
- "8080:80"Explications :
- PHP avec Apache : Configure un serveur PHP accessible sur le port
8000. - MySQL : Base de données accessible localement sur le port
3307. - PhpMyAdmin : Interface web pour gérer MySQL, accessible via
http://localhost:8080.
Créer un dossier pour PHP et y ajouter un fichier index.php :
<?php
echo "Bonjour, Docker !";Étape 2 : Démarrer les services avec Docker Compose
Lancer les conteneurs :
docker-compose up
- Docker télécharge les images nécessaires.
- Les services démarrent.
Vérifier les conteneurs actifs :
docker psAccéder aux services :
- PHP : http://localhost:8000
- PhpMyAdmin : http://localhost:8080
Étape 3 : Personnalisation avec Dockerfile
Pour configurer PHP avec des extensions supplémentaires comme PDO et mysqli :
Créer un fichier Dockerfile :
FROM php:8.2-apache
RUN apt-get update && apt-get install -y \
libpq-dev \
&& docker-php-ext-install pdo pdo_mysql mysqli
Modifier docker-compose.yaml pour utiliser le Dockerfile :
php:
image: php:8.2-apache
container_name: php_82
ports:
- 8000:80
volumes:
- ./php:/var/www/html
build:
context: .
dockerfile: Dockerfile
Recréer l'image et redémarrer.
Étape 4 : Test avec une base de données MySQL
Ajouter un fichier connect.php dans le dossier php :
<?php
$host = 'db';
$db = 'demo';
$user = 'user';
$pass = 'password';
$dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4";
try {
$pdo = new PDO($dsn, $user, $pass);
echo "Connexion réussie !";
} catch (PDOException $e) {
echo "Erreur de connexion : " . $e->getMessage();
}Accéder à http://localhost:8000/connect.php.
Étape 5 : Administration avec PhpMyAdmin
Accéder à PhpMyAdmin : http://localhost:8080.
Identifiants de connexion :
- Serveur :
db - Utilisateur :
user - Mot de passe :
password
Créer une table et insérer des données :
- Table :
clients - Colonnes :
id,nom,email.
Obtenir de l'aide
Pour obtenir de l'aide, vous pouvez accéder au serveur Discord pour une entraide par chat.