Todos los artículos
Moodle

Moodle: Composer vendor directory not found

10 de agosto de 2026 · 6 min de lectura

izon
rizon.agency
Moodle: Composer vendor directory not found

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-authoritative

Ejecú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-authoritative

Incorrecto:

cd /var/www/moodle/public
composer install --no-dev --classmap-authoritative

Composer 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:

  1. Confirma que PHP CLI cumple requisitos Moodle 5.2.
  2. Entra en la raíz Moodle.
  3. Ejecuta Composer sin dependencias de desarrollo.
  4. Comprueba que existe vendor/autoload.php.
  5. Revisa propietario y permisos.
  6. Purga cachés.
  7. 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.php

Si 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.php

La 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ónOpción práctica
No hay Composer pero sí SSH/SFTPConstruir localmente o en CI y subir todo con vendor
Composer usa PHP equivocadoPedir al host el binario PHP/Composer correcto
El gestor de archivos pierde ficherosSubir un archivo comprimido y extraer en servidor
No hay shell ni subidas grandesPasar 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 ComposerCausa probable
PHP version does not satisfy requirementPHP CLI demasiado antiguo
Falta sodium, intl, zip, soapExtensión no habilitada para CLI
Killed o memoria agotadaLímite de memoria
Permission denied en vendorPropietario incorrecto o solo lectura
Could not resolve packageRed, 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.php

No 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.

Empezar

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.