Skip to Content
MoodlePartie 4 — Installation et environnement de développementPartie 4 — Installation et environnement de développement

Partie 4 — Installation et environnement de développement

Documentation Moodle 5.2 pour développeur web expérimenté (Next.js/React/TypeScript) débutant sur Moodle. Version de référence : Moodle 5.2 (sortie le 20 avril 2026 — PHP 8.3/8.4, PostgreSQL 16+, MySQL 8.4+, MariaDB 10.11+).

Objectif de cette partie

Jusqu’ici, nous avons parlé de Moodle « de l’extérieur » : ses concepts, son modèle pédagogique, son écosystème. Cette partie vous met enfin les mains dans le cambouis. À la fin de ces cinq chapitres, vous aurez :

  • un environnement de développement Moodle 5.2 complet et reproductible sous Windows 11 (Docker + WSL2), aligné sur ce qu’utilise l’intégration continue de Moodle HQ ;
  • compris comment se monte une installation de production classique (Ubuntu, Nginx, PHP-FPM, PostgreSQL) et ce que contient réellement config.php, ligne par ligne ;
  • un outillage de développeur opérationnel : mode debug, purge de caches, moosh, XDebug 3 branché sur VS Code, générateurs de données de test ;
  • une carte mentale du code source de Moodle : où vit quoi, comment le lire, comment y naviguer efficacement.

Un point structurant traverse toute la partie : depuis Moodle 5.1, la racine web a été déplacée dans un sous-dossier public/. Le serveur web pointe sur moodle/public, config.php reste à la racine du projet, et les scripts CLI se lancent désormais via php public/admin/cli/.... La quasi-totalité des tutoriels antérieurs à 2025 sont obsolètes sur ce point — nous le documentons précisément dans chaque chapitre concerné.

Sommaire des chapitres

#FichierContenu
4.101-prerequis-choix.mdPrérequis matériels et logiciels de Moodle 5.2 (PHP 8.3/8.4, extensions, bases de données supportées, Apache vs Nginx), anatomie d’une instance (code / moodledata / DB / caches / cron), comparatif des environnements de dev (Docker recommandé, natif, Laragon/XAMPP) et considérations Windows 11 / WSL2.
4.202-moodle-docker.mdTutoriel pas à pas avec moodlehq/moodle-docker : clone de la branche MOODLE_502_STABLE, variables MOODLE_DOCKER_*, installation CLI de la base, Mailpit, Selenium/Behat, cycle de vie (stop/start/down), personnalisation via local.yml, spécificités WSL2, et l’alternative express bitnami/moodle (pour tester, pas pour développer).
4.303-installation-manuelle.mdInstallation de production : Ubuntu 24.04 + Nginx + PHP-FPM 8.3 + PostgreSQL 16, vhost complet pour le nouveau webroot public/, installeur web vs CLI, config.php décortiqué ligne par ligne (dbtype, wwwroot, dataroot, prefix, reverseproxy/sslproxy, sessions Redis, debug…), moodledata, cron chaque minute (crontab et systemd timer), upgrade CLI, HTTPS.
4.404-outillage-dev.mdL’outillage quotidien : $CFG->debug = DEBUG_DEVELOPER et tous les réglages de dev, purge des caches (UI + purge_caches.php), moosh et ses commandes phares, MDK, XDebug 3 + VS Code avec launch.json et path mappings Docker, scripts admin/cli/ incontournables, génération de données de test avec tool_generator.
4.505-arborescence-code.mdTour guidé du dépôt moodle/moodle : la racine du projet vs public/ (admin/, course/, mod/, blocks/, theme/, lib/, question/, ai/…), lib/ en détail (moodlelib, weblib, dml, classes/), où vit chaque type de plugin, fichiers spéciaux (version.php, config-dist.php), conventions moodle-cs et PSR, navigation efficace dans VS Code, lire le core comme documentation.

Comment lire cette partie

  • Vous voulez coder au plus vite ? Lisez 4.1 (au moins les sections WSL2 et le comparatif d’environnements), déroulez 4.2 en entier, puis 4.4. Gardez 4.3 pour le jour où vous déploierez, et 4.5 en lecture de fond.
  • Vous préparez un déploiement ? 4.1 puis 4.3 sont votre chemin critique ; 4.2 reste utile pour disposer d’un environnement de recette jetable.
  • Vous venez de React/Next.js ? Les encadrés « 💡 Pour un dev React » traduisent chaque concept dans votre langue maternelle technique : moodledata ≈ stockage objet, purge de cache ≈ rm -rf .next, version.phppackage.json, moosh ≈ un CLI type artisan/nx

Conventions des chapitres

Chaque chapitre utilise trois encadrés récurrents :

⚠️ Piège : erreur classique qui coûte des heures (souvent liée aux caches, aux permissions ou au nouveau public/).

💡 Pour un dev React : analogie ou contraste avec l’écosystème JavaScript moderne.

📚 Aller plus loin : renvoi vers la documentation officielle (moodledev.io, docs.moodle.org) ou le code source.

Les commandes sont fournies en bash (WSL2/Ubuntu — environnement recommandé) et, lorsque c’est pertinent, en PowerShell pour Windows 11 natif.

Prérequis pour suivre

  • Windows 11 avec droits administrateur (pour WSL2 et Docker Desktop) ;
  • Git, VS Code, et des bases solides en ligne de commande (acquises pour vous) ;
  • Aucune connaissance préalable de PHP n’est indispensable pour cette partie, mais elle devient nécessaire dès la Partie 5 (développement de plugins).

Dans la prochaine partie

La Partie 5 attaque le cœur du métier : le développement de plugins — frankenstyle en détail, structure obligatoire d’un plugin, APIs fondamentales ($DB, formulaires, capacités, chaînes de langue), et votre premier plugin local_ de bout en bout.