Moodle : erreur Composer vendor directory not found
10 août 2026 · 6 min de lecture
Ce que signifie l’erreur
Composer vendor directory not found signifie que Moodle attend des dépendances PHP installées par Composer dans le dossier vendor, mais que ce dossier est absent ou illisible. Dans Moodle 5.1 et plus récent, ce n’est plus un détail de développeur. Cela peut bloquer une installation ou une mise à niveau normale.
La discussion Moodle.org « error in 5.1: Composer vendor directory not found » compte 57 réponses. Moodle a aussi une page officielle Composer vendor directory not found.
La correction de production est généralement :
composer install --no-dev --classmap-authoritativeLancez-la depuis la racine Moodle, pas depuis public.
Pourquoi cela arrive avec Moodle 5.x
Moodle 5.1 a rendu les dépendances Composer plus visibles dans le processus d’installation. Si vous utilisez un paquet officiel qui inclut déjà les dépendances, vous ne verrez peut-être jamais Composer. Mais si vous installez depuis Git, construisez votre propre release, téléversez seulement une partie de l’arborescence ou utilisez un installateur d’hébergeur, vendor peut manquer.
Moodle échoue ensuite parce qu’il ne peut pas charger les bibliothèques tierces nécessaires.
Vérifiez d’abord le dossier courant
Une arborescence Moodle 5.x contient un dossier parent et un dossier public. Composer s’exécute dans le parent.
Correct :
cd /var/www/moodle
composer install --no-dev --classmap-authoritativeIncorrect :
cd /var/www/moodle/public
composer install --no-dev --classmap-authoritativeSi vous lancez Composer dans public, vous réparez le mauvais endroit.
La séquence la plus sûre
Testez d’abord en préproduction :
- Vérifiez que le PHP CLI respecte les exigences Moodle 5.2.
- Placez-vous dans la racine Moodle.
- Lancez Composer sans dépendances de développement.
- Confirmez que
vendor/autoload.phpexiste. - Vérifiez propriétaire et permissions.
- Purgez les caches.
- Relancez la mise à niveau Moodle.
php -v
cd /path/to/moodle
composer install --no-dev --classmap-authoritative
test -f vendor/autoload.php
php admin/cli/purge_caches.php
php admin/cli/upgrade.phpSi php -v affiche PHP 8.2 alors que le serveur web utilise PHP 8.3 ou 8.4, corrigez ce décalage avant de faire confiance au résultat.
Installation depuis Git
Git ne remplace pas Composer. Après avoir choisi la branche ou le tag Moodle stable, installez les dépendances depuis la racine.
cd /path/to/moodle
git fetch origin
git checkout -b MOODLE_502_STABLE origin/MOODLE_502_STABLE
composer install --no-dev --classmap-authoritative
php admin/cli/upgrade.phpLe guide Git pour administrateurs rappelle aussi de sauvegarder et de replacer les plugins tiers dans les bons emplacements 5.x.
Si Composer est impossible sur hébergement mutualisé
Là, l’hébergement mutualisé devient pénible.
| Situation | Option pratique |
|---|---|
| Pas de Composer mais SSH/SFTP | Construire localement ou en CI, puis téléverser l’arborescence complète avec vendor |
| Composer existe avec le mauvais PHP | Demander le bon couple Composer/PHP |
| Le gestionnaire de fichiers oublie des fichiers | Téléverser une archive et l’extraire côté serveur |
| Pas de shell ni gros téléversement | Passer sur VPS ou hébergeur compatible Moodle |
La règle : ne mettez pas un Moodle à moitié construit en production. Le dossier vendor fait partie de l’application.
Pour le contexte hébergement, lisez Moodle 5.2 sur hébergement mutualisé.
Si Composer échoue
Lisez la première vraie erreur, pas la dernière pile d’appel.
| Sortie Composer | Cause probable |
|---|---|
| Version PHP non satisfaite | PHP CLI trop ancien |
Extension sodium, intl, zip, soap manquante | Extension absente côté CLI |
| Killed ou mémoire épuisée | Limite mémoire Composer |
Permission denied dans vendor | Mauvais propriétaire ou dossier en lecture seule |
| Package introuvable | Réseau, proxy, lock file ou dépôt |
Permissions après Composer
Sur Linux, le code Moodle doit généralement être lisible par le serveur web mais pas modifiable par lui. Après création de vendor, vérifiez :
find vendor -type f -name autoload.php
ls -ld vendor
ls -l vendor/autoload.phpNe copiez pas un dossier vendor pris dans une autre version Moodle. Les dépendances doivent correspondre exactement au code et au lock file déployés.
FAQ
Quelle commande corrige l’erreur ?
composer install --no-dev --classmap-authoritative, depuis la racine Moodle.
vendor doit-il être dans public ?
Non. Composer s’exécute dans la racine Moodle.
Peut-on installer Moodle 5.2 sans Composer ?
Oui avec un paquet officiel qui inclut déjà les dépendances. Sinon Composer doit exister quelque part dans le processus de build.

Écrit par Choaib Mouhrach
Fondateur et ingénieur logiciel senior
Je conçois et développe des plateformes d’apprentissage sur mesure pour les organisations dont les parcours de formation et de certification sont complexes. Plutôt que d’assembler des plugins et des outils tiers, je crée des systèmes adaptés au fonctionnement réel de chaque activité, afin de réduire la charge administrative et d’améliorer l’expérience des apprenants.
Votre produit d'apprentissage mérite sa propre plateforme.
Si vous voulez offrir une expérience d'apprentissage construite autour de votre produit, de vos apprenants et de vos objectifs, vous êtes au bon endroit. Nous construisons des plateformes qui vous donnent le contrôle et la flexibilité pour grandir sans limites.