MAQ Módulo 2 — Instalación: de Moodle 4.1 a 4.5, lo que nadie te cuenta
El primer subapartado del módulo de Implementación es Instalación. Si no has leído la introducción al módulo, puedes empezar por aquí: MAQ Módulo 2: Implementación — primeras impresiones Y una de las primeras actividades que propone el MAQ es comparar los requisitos de servidor entre Moodle 4.1 y 4.5, y documentar cómo ayudarías a un colega a actualizar desde 4.1.
Suena a ejercicio académico. Pero cuando me puse a revisarlo en detalle, me encontré con más de una sorpresa.
Moodle 4.1 vs 4.5: los requisitos que cambiaron
Moodle 4.1 es una versión LTS (Long Term Support), lo que significa que muchas organizaciones llevan en ella más tiempo del habitual. Es estable, conocida y, en muchos entornos, todavía en producción. Moodle 4.5 también es LTS — la siguiente parada larga.
Entre las dos hay más diferencias de lo que parece:
PHP
| Moodle 4.1 | Moodle 4.5 | |
|---|---|---|
| Versión mínima | PHP 7.4 | PHP 8.1 |
| PHP 64-bit obligatorio | No (recomendado) | Sí, obligatorio |
| Extensión sodium | Recomendada | Obligatoria |
| max_input_vars >= 5000 | Recomendado (PHP 7.x) / Obligatorio (PHP 8.x) | Obligatorio siempre |
El salto de PHP 7.4 a PHP 8.1 como mínimo es el cambio más importante. No es solo un número — PHP 8.x tiene diferencias de comportamiento que pueden romper plugins y themes desarrollados para PHP 7.x. Hay que revisar la compatibilidad de todos los plugins instalados antes de actualizar.
Base de datos
| Moodle 4.1 | Moodle 4.5 | |
|---|---|---|
| PostgreSQL mínimo | 12 | 13 |
| MySQL mínimo | 5.7 | 8.0 |
| MariaDB mínimo | 10.4 | 10.6.7 |
Si estás en MySQL 5.7 o MariaDB 10.4 — versiones muy comunes en instalaciones de hace unos años — tienes que actualizar también la base de datos. Eso añade complejidad al proceso.
Prefijo de base de datos
Desde Moodle 4.3, el prefijo máximo de base de datos ($CFG->prefix) es de 10 caracteres. Si tienes un prefijo más largo, la actualización falla. Toca revisar el config.php antes de empezar.
El camino de actualización: de 4.1 a 4.4 y de 4.1 a 4.5
Aquí viene lo que más preguntas genera: ¿puedo actualizar directamente de 4.1 a 4.5?
La respuesta corta es no exactamente. Moodle 4.5 requiere venir desde Moodle 4.1.2 o posterior. Si estás en 4.1.0 o 4.1.1, primero hay que actualizar a la última versión de 4.1 antes de dar el salto.
Actualización de Moodle 4.1 a Moodle 4.4
# 1. Lee las notas de la versión. Siempre. Sin excepción.
# https://moodledev.io/general/releases/4.4
# 2. Backup completo
mysqldump -u root -p moodle > backup_moodle_$(date +%Y%m%d).sql
tar -czf backup_moodledata_$(date +%Y%m%d).tar.gz /var/moodledata
tar -czf backup_code_$(date +%Y%m%d).tar.gz /var/www/moodle
# 3. Verificar requisitos previos
# PHP >= 8.1, sodium instalado, max_input_vars >= 5000
php -v
php -m | grep sodium
# 4. Activar modo mantenimiento
php /var/www/moodle/admin/cli/maintenance.php --enable
# 5. Actualizar el código
cd /var/www
git fetch
git checkout MOODLE_404_STABLE # o descargar y descomprimir
# 6. Ejecutar actualización
php /var/www/moodle/admin/cli/upgrade.php
# 7. Verificar plugins
# Administración > Notificaciones > revisar plugins con problemas
# 8. Desactivar modo mantenimiento
php /var/www/moodle/admin/cli/maintenance.php --disable
# 9. Purgar cachés
php /var/www/moodle/admin/cli/purge_caches.php
Actualización de Moodle 4.1 a Moodle 4.5
El proceso es el mismo, pero hay que tener en cuenta que no se puede saltar a 4.5 directamente desde 4.1.0 o 4.1.1. Si estás en esas versiones, primero actualiza a la última 4.1.x.
Además, si tu MySQL está en 5.7 o tu MariaDB en 10.4, hay que actualizar la base de datos antes de actualizar Moodle. El orden importa:
- Actualizar PHP a 8.1 o superior
- Instalar extensión sodium si no está
- Actualizar MySQL a 8.0 / MariaDB a 10.6.7 / PostgreSQL a 13
- Verificar que el prefijo de BD no supera 10 caracteres
- Ejecutar el proceso de actualización de Moodle
Lo que me lleva a reflexionar
Cuando el MAQ te pide que documentes este proceso como si fueras a explicárselo a un colega, te das cuenta de cuántas cosas das por supuestas.
¿Sabe tu colega que tiene que actualizar PHP antes que Moodle? ¿Sabe que MySQL 5.7 ya no está soportado? ¿Tiene un plan de rollback si algo sale mal?
La instalación no es solo instalar. Es planificar, verificar dependencias, documentar el estado actual y tener claro el camino de vuelta si algo falla.
Eso es lo que diferencia una actualización profesional de un “cruzamos los dedos y ejecutamos el script”.
En el siguiente post del módulo de Implementación, el subapartado Seguridad.
Siguiente en esta serie: MAQ Módulo 2 — Seguridad: lo que el checklist no te dice