Ce projet fournit un environnement WordPress complet et pré-configuré utilisant Docker, spécialement conçu pour l'enseignement et l'apprentissage du développement web.
- Prérequis
- Architecture du projet
- Installation et démarrage
- Configuration initiale
- Modification et personnalisation
- Sauvegarde et versionnement
- Restauration
- Commandes utiles
- Résolution de problèmes
Avant de commencer, assurez-vous d'avoir installé sur votre machine:
- Docker Desktop (version 20.10 ou supérieure)
- Windows/Mac: Télécharger Docker Desktop
- Linux: Instructions d'installation
- Docker Compose (inclus avec Docker Desktop)
- Git pour cloner et versionner le projet
- Au moins 2 Go d'espace disque disponible
docker --version
docker-compose --versionLe projet utilise deux containers Docker:
-
Container WordPress (
wordpress_app)- Image personnalisée basée sur WordPress officiel
- Serveur Apache
- PHP 8.x
- WP-CLI (WordPress Command Line Interface)
- Plugins pré-installés
-
Container MySQL (
wordpress_db)- Base de données MySQL 8.0
- Données persistantes
wordpress-docker-etudiant/
├── docker-compose.yml # Configuration des services Docker
├── wordpress/
│ ├── Dockerfile # Image WordPress personnalisée
│ ├── docker-entrypoint.sh # Script de démarrage
│ └── init-wordpress.sh # Script d'initialisation
├── uploads/ # Médias WordPress (images, fichiers)
├── themes/ # Thèmes personnalisés (optionnel)
├── backups/ # Sauvegardes de configuration
│ ├── plugins_list.json # Liste des plugins installés
│ ├── themes_list.json # Liste des thèmes installés
│ └── *.sql.gz # Dumps de la base de données
├── backup.sh # Script de sauvegarde
├── restore.sh # Script de restauration
├── .gitignore # Fichiers à exclure de Git
└── README.md # Ce fichier
git clone <URL_DU_REPO>
cd wordpress-docker-etudiantdocker-compose up -dCette commande va:
- Télécharger les images Docker nécessaires (première fois uniquement)
- Créer et démarrer les containers
- Installer WordPress
- Installer automatiquement les plugins pré-configurés
- Configurer les permaliens et autres options de base
Attendez environ 30 secondes pour que l'initialisation se termine, puis accédez à:
- Site WordPress: http://localhost:8080
- Interface d'administration: http://localhost:8080/wp-admin
Lors de la première visite, WordPress vous demandera de:
- Choisir la langue (français recommandé)
- Créer un compte administrateur:
- Nom d'utilisateur: admin (ou votre choix)
- Mot de passe: choisissez un mot de passe fort
- Email: votre adresse email
- Donner un titre à votre site
Par défaut, les plugins suivants sont installés et activés:
- Classic Editor: Éditeur classique WordPress (alternative à Gutenberg)
- Duplicate Post: Permet de dupliquer facilement des articles et pages
- Contact Form 7: Création de formulaires de contact
- All-in-One WP Migration: Outil de migration et sauvegarde
- WPForms Lite: Constructeur de formulaires avancé
Pour ajouter des plugins qui seront installés automatiquement:
- Éditez le fichier
wordpress/init-wordpress.sh - Ajoutez le slug du plugin dans le tableau
PLUGINS:
PLUGINS=(
"classic-editor"
"duplicate-post"
"contact-form-7"
"all-in-one-wp-migration"
"wpforms-lite"
"votre-nouveau-plugin" # Ajoutez ici
)- Reconstruisez et redémarrez:
docker-compose down
docker-compose up -d --buildLe fichier init-wordpress.sh configure également:
- Permaliens: Format "nom de l'article" (
/%postname%/) - Commentaires: Désactivés par défaut pour les nouveaux articles
- Fuseau horaire: Europe/Zurich (modifiable)
-
Démarrer l'environnement:
docker-compose up -d
-
Personnaliser WordPress:
- Installer des thèmes via l'interface d'administration
- Activer/désactiver des plugins
- Créer des menus de navigation
- Configurer les widgets
- Créer des pages et articles d'exemple
- Personnaliser l'apparence (couleurs, logo, etc.)
-
Sauvegarder vos modifications (voir section suivante)
Les fichiers WordPress sont stockés dans un volume Docker. Pour y accéder:
# Accéder au container
docker exec -it wordpress_app bash
# Naviguer dans WordPress
cd /var/www/html
# Exemple: lister les plugins installés
wp plugin list --allow-rootUne fois vos modifications terminées, créez une sauvegarde:
./backup.shCe script va créer dans le dossier backups/:
- Un dump complet de la base de données (
.sql.gz) - La liste des plugins installés (
plugins_list.json) - La liste des thèmes installés (
themes_list.json) - Les options WordPress principales (nom du site, description, etc.)
Après une sauvegarde, versionnez vos modifications:
# Ajouter les fichiers de sauvegarde
git add backups/
# Optionnel: ajouter vos thèmes personnalisés
git add themes/
# Commit
git commit -m "Configuration WordPress: plugins, thèmes et contenu initial"
# Pousser sur GitHub
git push origin main✅ Versionné (sauvegardé sur Git):
- Configuration Docker (docker-compose.yml, Dockerfile)
- Scripts de sauvegarde/restauration
- Exports de la base de données (
.sql.gz) - Listes de plugins et thèmes
- Thèmes personnalisés (optionnel)
- Documentation
❌ Non versionné (fichiers locaux):
- Uploads et médias (dossier
uploads/) - Volumes Docker (données dynamiques)
- Fichiers temporaires et logs
- Fichiers de configuration locale (
.env)
# 1. Cloner le repository
git clone <URL_DU_REPO>
cd wordpress-docker-etudiant
# 2. Démarrer l'environnement
docker-compose up -d
# 3. Attendre l'initialisation (30 secondes)
# 4. Restaurer la configuration sauvegardée
./restore.sh
# 5. Accéder à WordPress
# http://localhost:8080Le script restore.sh vous permet de choisir quelle sauvegarde restaurer:
./restore.shSuivez les instructions à l'écran pour:
- Voir les sauvegardes disponibles
- Choisir laquelle restaurer (ou utiliser la plus récente)
- Confirmer la restauration
# Démarrer l'environnement
docker-compose up -d
# Arrêter l'environnement
docker-compose down
# Arrêter et supprimer les données (⚠️ perte de données!)
docker-compose down -v
# Redémarrer l'environnement
docker-compose restart
# Voir les logs
docker-compose logs -f
# Voir les logs d'un container spécifique
docker-compose logs -f wordpress
docker-compose logs -f db
# Reconstruire les images
docker-compose up -d --build# Accéder au container WordPress
docker exec -it wordpress_app bash
# Une fois dans le container, utiliser WP-CLI:
# Lister les plugins
wp plugin list --allow-root
# Installer un plugin
wp plugin install nom-du-plugin --activate --allow-root
# Désactiver un plugin
wp plugin deactivate nom-du-plugin --allow-root
# Lister les thèmes
wp theme list --allow-root
# Créer un utilisateur
wp user create username email@example.com --role=editor --allow-root
# Vider le cache
wp cache flush --allow-root
# Mettre à jour WordPress
wp core update --allow-root
# Quitter le container
exit# Accéder à MySQL
docker exec -it wordpress_db mysql -u wordpress_user -pwordpress_pass_2024 wordpress_db
# Une fois dans MySQL:
SHOW TABLES;
SELECT * FROM wp_options WHERE option_name = 'siteurl';
exitLe site n'est pas accessible sur http://localhost:8080
Vérifications:
# Vérifier que les containers sont bien démarrés
docker ps
# Vérifier les logs pour des erreurs
docker-compose logs -f
# Vérifier que le port 8080 n'est pas déjà utilisé
# Sur Windows/Mac: netstat -an | find "8080"
# Sur Linux: netstat -an | grep 8080Solution: Si le port 8080 est occupé, modifiez le dans docker-compose.yml:
ports:
- "8081:80" # Changez 8080 en 8081 (ou autre port libre)Cause: La base de données n'est pas encore prête ou les credentials sont incorrects.
Solutions:
# Attendre 30 secondes et recharger la page
# Vérifier les logs de la base de données
docker-compose logs db
# Redémarrer les containers
docker-compose restart
# En dernier recours, tout supprimer et recommencer
docker-compose down -v
docker-compose up -dVérifications:
# Vérifier les logs d'initialisation
docker-compose logs wordpress | grep "Initialisation"
# Vérifier si le fichier marqueur existe
docker exec wordpress_app ls -la /var/www/html/.initializedSolution: Forcer la réinitialisation
docker exec wordpress_app rm /var/www/html/.initialized
docker-compose restart wordpressSi vous voulez changer les mots de passe par défaut (recommandé pour la production):
- Éditez
docker-compose.yml - Changez les valeurs dans les sections
environment:MYSQL_ROOT_PASSWORDMYSQL_PASSWORDWORDPRESS_DB_PASSWORD
- Supprimez et recréez l'environnement:
docker-compose down -v docker-compose up -d
# ⚠️ ATTENTION: Cette commande supprime TOUTES les données!
docker-compose down -v
docker volume prune -f
docker-compose up -d- Documentation officielle WordPress
- Documentation WP-CLI
- Documentation Docker
- Documentation Docker Compose
Pour toute question ou problème:
- Consultez d'abord cette documentation
- Vérifiez les logs:
docker-compose logs -f - Contactez votre enseignant
Ce projet est fourni à des fins éducatives.
Version: 1.0
Dernière mise à jour: Janvier 2026
Auteur: Raphaël Racine - HES-SO Valais