Moodle: Composer vendor directory not found
10 de agosto de 2026 · 6 min de lectura
Qué significa el error
Composer vendor directory not found significa que Moodle esperaba encontrar dependencias PHP instaladas por Composer en el directorio vendor, pero no están o no se pueden leer. En Moodle 5.1 y posteriores, esto puede bloquear una instalación o actualización normal.
La discusión Moodle.org “error in 5.1: Composer vendor directory not found” tiene 57 respuestas. Moodle también tiene una página oficial sobre Composer vendor directory not found.
El arreglo habitual en producción es:
composer install --no-dev --classmap-authoritativeEjecútalo desde la raíz Moodle, no desde public.
Por qué pasa en Moodle 5.x
Moodle 5.1 hizo más explícitas las dependencias gestionadas por Composer. Si usas un paquete oficial que ya las incluye, quizá nunca pienses en Composer. Si instalas desde Git, construyes tu propio paquete, subes solo parte del árbol o usas un instalador del host, puede faltar vendor.
Entonces Moodle falla porque no puede cargar librerías de terceros necesarias.
Comprueba dónde estás ejecutando el comando
Correcto:
cd /var/www/moodle
composer install --no-dev --classmap-authoritativeIncorrecto:
cd /var/www/moodle/public
composer install --no-dev --classmap-authoritativeComposer pertenece a la carpeta padre de Moodle. Si lo ejecutas dentro de public, estás reparando el directorio equivocado.
Secuencia segura
Hazlo primero en un entorno de pruebas:
- Confirma que PHP CLI cumple requisitos Moodle 5.2.
- Entra en la raíz Moodle.
- Ejecuta Composer sin dependencias de desarrollo.
- Comprueba que existe
vendor/autoload.php. - Revisa propietario y permisos.
- Purga cachés.
- Ejecuta otra vez la actualización.
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 muestra PHP 8.2 pero el servidor web usa PHP 8.3 o 8.4, corrige esa diferencia antes de confiar en Composer.
Si instalaste Moodle desde Git
Git no elimina la gestión de dependencias. Tras elegir rama o tag estable, ejecuta Composer en la raíz.
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.phpLa guía Git for Administrators recuerda además hacer copia y mover plugins terceros a las rutas correctas de 5.x.
Si no puedes ejecutar Composer en hosting compartido
Aquí el hosting compartido se complica.
| Situación | Opción práctica |
|---|---|
| No hay Composer pero sí SSH/SFTP | Construir localmente o en CI y subir todo con vendor |
| Composer usa PHP equivocado | Pedir al host el binario PHP/Composer correcto |
| El gestor de archivos pierde ficheros | Subir un archivo comprimido y extraer en servidor |
| No hay shell ni subidas grandes | Pasar a VPS o host compatible con Moodle |
No subas a producción un árbol Moodle a medias. vendor es parte del artefacto.
Para restricciones de hosting, lee ¿Puede Moodle 5.2 funcionar en hosting compartido?.
Si Composer falla
Lee el primer error real.
| Salida de Composer | Causa probable |
|---|---|
| PHP version does not satisfy requirement | PHP CLI demasiado antiguo |
Falta sodium, intl, zip, soap | Extensión no habilitada para CLI |
| Killed o memoria agotada | Límite de memoria |
Permission denied en vendor | Propietario incorrecto o solo lectura |
| Could not resolve package | Red, proxy, lock file o repositorio |
Permisos después de Composer
Comprueba:
find vendor -type f -name autoload.php
ls -ld vendor
ls -l vendor/autoload.phpNo copies un vendor aleatorio de otra versión Moodle. Las dependencias deben corresponder al código exacto desplegado.
FAQ
¿Qué comando corrige el error?
composer install --no-dev --classmap-authoritative, desde la raíz Moodle.
¿vendor debe estar dentro de public?
No. Composer se ejecuta en la raíz Moodle.
¿Es un bug de Moodle?
Normalmente no. Suele significar que el artefacto desplegado está incompleto.

Escrito por Choaib Mouhrach
Fundador e ingeniero de software sénior
Diseño y desarrollo plataformas de aprendizaje a medida para organizaciones con procesos complejos de formación y certificación. En lugar de unir plugins y herramientas de terceros, creo sistemas adaptados a la forma real de trabajar de cada negocio, reduciendo la carga administrativa y mejorando la experiencia del alumnado.
Tu producto de aprendizaje merece su propia plataforma.
Si quieres ofrecer una experiencia de aprendizaje construida en torno a tu producto, tus alumnos y tus objetivos, estás en el lugar correcto. Construimos plataformas que te dan el control y la flexibilidad para crecer sin límites.