Todos los artículos
Moodle

Cómo actualizar Moodle 5.1 a 5.2 sin romper producción

10 de agosto de 2026 · 9 min de lectura

izon
rizon.agency
Cómo actualizar Moodle 5.1 a 5.2 sin romper producción

La versión corta

Actualizar Moodle 5.1 a 5.2 suele ser tranquilo cuando el servidor está preparado antes de tocar el código. Los fallos que parecen misteriosos después de la actualización suelen venir de cinco sitios: el directorio public introducido en Moodle 5.1, la configuración del router, las dependencias de Composer, plugins que todavía esperan rutas antiguas y cachés que no se regeneraron bien.

No lo trates como una sustitución de archivos. Trátalo como un despliegue controlado: clona producción, revisa requisitos, mueve plugins con intención, ejecuta la actualización en un entorno de pruebas y repite los mismos pasos en producción.

Por qué Moodle 5.2 está pillando a tanta gente

El foro Installing and Upgrading Help de Moodle.org está lleno de síntomas de Moodle 5.x: checks de router fallando, menús desaparecidos, imágenes rotas, cajas de subida que se quedan cargando, problemas en bancos de preguntas, Class "Mustache_Engine" not found y errores de Composer.

No son seis problemas aislados. Moodle 5.1 movió el código web a public y añadió el router al camino de las peticiones. Moodle 5.2 elevó requisitos como PHP 8.3 y exige venir desde Moodle 4.4 o posterior. Las notas de Moodle 5.2 y la guía de actualización son la fuente de verdad.

Antes de tocar producción

Prepara una lista con servidor, código y datos.

ÁreaQué comprobarPor qué importa
PHPMoodle 5.2 requiere PHP 8.3 o superiorEl check de entorno puede bloquear la actualización
Base de datosMariaDB 10.11, MySQL 8.4, PostgreSQL 16 u otra versión soportadaLas versiones antiguas fallan antes de que Moodle arranque
Raíz webEl dominio apunta a moodle/publicSi se publica todo Moodle, 5.x rompe o avisa de seguridad
RouterApache, Nginx, IIS u OpenLiteSpeed envía rutas sin archivo real a r.phpLas rutas limpias dependen de ello
ComposerExiste vendorMoodle 5.1+ comprueba dependencias instaladas
PluginsCada plugin es compatible con 5.2Temas, formatos y repositorios son causas habituales
CachésPuedes purgarlas tras actualizarMoodle menciona el file picker como caso que puede necesitar purga manual

El objetivo no es hacer papeleo. Es que la actualización sea aburrida.

1. Comprueba el camino de actualización

En el sitio actual, ve a Administración del sitio > Servidor > Entorno y cambia la versión objetivo a Moodle 5.2. Corrige todos los avisos antes de empezar.

Moodle 5.2 solo acepta actualización desde Moodle 4.4 o posterior. Si estás en 4.3, 4.2 o anterior, actualiza primero a una versión intermedia soportada.

RequisitoMínimo Moodle 5.2
Versión origenMoodle 4.4 o posterior
PHP8.3.0
MariaDB10.11.0
MySQL8.4
PostgreSQL16
SQL Server2019
max_input_vars5000
Arquitectura PHP64 bits

Comprueba también extensiones como sodium, intl, mbstring, soap, zip y fileinfo.

2. Haz copia de las tres cosas reales

Copia el código Moodle, el directorio moodledata y la base de datos. Una copia solo de archivos no es un plan de vuelta atrás. Los archivos de cursos viven en moodledata; los registros de aprendizaje viven en la base.

En producción, hazlo en modo mantenimiento o en una ventana tranquila. Si cron está corriendo, espera a que terminen las tareas activas.

3. Sustituye el código limpiamente

No copies Moodle 5.2 encima del directorio antiguo. Aparta el código viejo, descomprime la versión nueva y copia solo lo que corresponde.

mv moodle moodle.backup
tar xvzf moodle-latest-5.2.tgz
cp moodle.backup/config.php moodle/

Después copia plugins ya verificados en las rutas correctas de Moodle 5.x. Muchos deben vivir bajo public.

cp -pr moodle.backup/theme/mytheme moodle/public/theme/mytheme
cp -pr moodle.backup/mod/mymod moodle/public/mod/mymod

Si usas Git, sigue la guía Git for Administrators y apunta a la rama estable correcta.

4. Trata los plugins como bloqueantes

Que una carpeta se copie no significa que el plugin sea compatible.

Zona de pluginFallo que puedes ver
TemaMenús invisibles, cajones rotos, selector de archivos ausente
Formato de cursoSecciones que no renderizan
Tipo de preguntaErrores en banco de preguntas
RepositorioSelector de archivos que se queda cargando
Matrícula/pagoUsuarios sin acceso al curso pagado
Informes/localErrores de clase o namespace en administración

Si aparece Class "Mustache_Engine" not found, sospecha de un tema o plugin que llama al nombre antiguo de Mustache.

5. Apunta el servidor web a public

Desde Moodle 5.1, la raíz web debe ser el directorio public, no la carpeta padre.

Apache:

DocumentRoot /var/www/moodle/public
 
<Directory /var/www/moodle/public>
    AllowOverride None
    Require all granted
</Directory>

Nginx:

root /var/www/moodle/public;

En cPanel o hosting compartido quizá necesites un subdominio, symlink o alias. Si tu host no permite nada de eso, el problema no es Moodle: es que el plan no te da el control que Moodle 5.x necesita.

Para ese tema, lee ¿Puede Moodle 5.2 funcionar en hosting compartido?.

6. Configura el router

El router envía peticiones que no corresponden a un archivo real hacia r.php.

Apache:

FallbackResource /r.php

Nginx:

try_files $uri $uri/ /r.php$is_args$args;

Si Moodle dice que una ruta .php falsa devuelve 404 en vez de 302, consulta Moodle 5.2: el router no está configurado correctamente.

7. Instala dependencias Composer

Si aparece Composer vendor directory not found, ejecuta Composer desde la raíz Moodle, no desde public.

composer install --no-dev --classmap-authoritative

Si tu hosting no tiene Composer o shell, construye el artefacto en otro sitio y sube el árbol completo con vendor. El diagnóstico completo está en Moodle: Composer vendor directory not found.

8. Ejecuta la actualización y purga cachés

En producción, mejor CLI:

php admin/cli/upgrade.php

Después purga:

Administración del sitio > Desarrollo > Purgar todas las cachés

Si el selector de archivos sigue girando, lee el selector de archivos de Moodle se queda cargando tras actualizar a 5.2.

Prueba los flujos reales

No des la actualización por terminada porque carga el dashboard. Prueba login, administración, páginas de curso, edición, subidas, entrega de tareas, cron, plugins e integraciones.

SíntomaPrimer sitio a revisar
404 tras actualizarRaíz web no apunta a public
Check de router fallaRegla de router o PHP-FPM
Composer vendor directory not foundFalta vendor
Menús rotosTema, plugin o caché
Selector de archivos cargandoCaché, JavaScript, tema, repositorio o AJAX
Class "Mustache_Engine" not foundPlugin no compatible con Moodle 5.2

FAQ

¿Puedo actualizar directamente de Moodle 5.1 a 5.2?

Sí. Moodle 5.2 soporta actualización desde Moodle 4.4 o posterior.

¿Debo mover la raíz web a public?

Sí, si no se hizo ya al pasar a Moodle 5.1.

¿Navegador o CLI?

Usa CLI en producción cuando puedas. Evita timeouts de navegador, proxy y servidor web.

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.