Actualizar Moodle es una de las tareas que son necesarias para tener las últimas novedades y mantenerlo seguro. Lo he dicho muchas veces: amo a Moodle, pero no su sistema de actualización 😁.

Se echa de menos poder hacerlo con un solo clic, tal como lo hacen otros manejadores de contenido.

Así que, mientras esperamos a que llegue esta funcionalidad, te enseñaré todo lo que debes saber para actualizar Moodle desde las versiones 1.X hasta la 5.X (pasando por todas las versiones intermedias) y no morir en el intento.

¿Cuál versión de Moodle tienes?

Lo primero que debes conocer para ejecutar una actualización, es saber cual versión de Moodle corres en tu servidor. Es posible que lo hayas instalado hace mucho tiempo y ya te olvidaste hasta la versión que tenías. No te preocupes, eso suele pasar en el mundo de Moodle muy a menudo. 😉

Para conocer esto, es necesario que te loguees como administrador y vayas a la pestaña: Administración del sitio (“Administración” en versiones antiguas) > Notificaciones. Podrás observar en esta pantalla, al final, que versión de Moodle tienes instalada.

Sabiendo esto, podemos hacer un plan para actualizar Moodle. Lo sencillo o complicado que sea este proceso va a depender de la antigüedad del mismo.

La versión actual al momento de escribir este artículo es la 5.0. Si tienes, por ejemplo, la versión 4.2.3 o posterior, bastará con que migres directamente a la 5.0.

Muy distinta será la historia si tienes una versión muy antigua. En este caso, deberás pasar por diferentes actualizaciones escalares para poder llegar a la última.

¿Por qué debemos actualizar Moodle escalarmente?

Moodle, como todo software, tiene versiones críticas, donde las novedades que aportan requieren cambios en su manera interna de trabajar. Estas mejoras, por lo general, afectan profundamente a la base de datos.

Para actualizar Moodle a la 5.0, las versiones críticas pasan por la: 1.6, 1.8, 1.9, 2.2, 2.7, 3.1, 3.6, 4.0 y 4.2. Es necesario instalar algunas o todas, dependiendo de la versión que tengas en tu servidor.

Para ejemplificarlo, tomemos el caso más extremo: una instalación de Moodle que tenga la versión 1.3, que datan del año 2004. (¡Hey! No te rías, existen versiones más antiguas en producción en la internet 😆)

En este caso es necesario migrar en este orden: 1.3 > 1.6 > 1.8 > 1.9 > 2.2 > 2.7 > 3.1 > 3.6 > 4.0 > 4.2 > 5.0. Son diez actualizaciones.

Con esto quiero decir que debes descargar todas esas versiones (excepto, por supuesto, la 1.3 donde estas) e ir instalando y migrando cada una de ellas; paso a paso, para garantizar una instalación sin problemas a la última versión.

En algunas de ellas cambiará hasta el motor de la base de datos: MyISAM a InnoDB. De ahí la importancia de la actualización escalar (no te preocupes que Moodle se encarga de hacer todo este trabajito adicional).

Ruta de actualización

A continuación te dejo un mapa de la ruta para actualizar Moodle hasta la versión 5.0

Si te encuentras en versiones intermedias, actualiza a la versión crítica más cercana. Por ejemplo: si estás en la versión 2.4, actualiza a la 2.7, de ahí a la 3.1, luego a la 3.6, 4.0, 4.2 y finaliza en la 5.0; no debes pasar por la 2.5, 2.6, 3.3, etc.

Nota

Una excepción a esto, es actualizar Moodle desde la 1.6 a la 1.9; si observas el mapa de ruta, no podrás ir a la siguiente actualización crítica directamente. Es importante que escales en la 1.8 primero y luego a la 1.9. Sáltate la 1.7, ya que da algunos problemas con la 1.8.

Como sé que algunos les puede confundir el gráfico, te lo dejo en forma de tabla para que no haya dudas. 😊

Preparativos para actualizar Moodle

Al momento de actualizar, hay dos tareas fundamentales: respaldar la base de datos y la carpeta Moodledata.

El Moodledata debería estar fuera de la carpeta de publicación del servidor. Dentro del archivo config.php está su ubicación exacta.

Te recomiendo guardes estos dos respaldos fuera del servidor, en un lugar seguro. Son el corazón de tu Moodle.

Respaldo de la base de datos

Hacer un respaldo de la base de datos es fundamental al actualizar Moodle.

En cada versión escalar, puedes detenerte y hacer otro respaldo, aunque en mi opinión, la más importante es la inicial. Si surge algún error, siempre puedes intentarlo desde el comienzo.

Existen muchas formas de hacer respaldo de bases de datos, la más fácil es desde el PhpMyAdmin de tu servidor.

Para esto, logueate con el usuario administrador de MySQL (usualmente root). Si usas cPanel te llevará directamente sin necesidad de loguearte.

Selecciona en el menú de la izquierda el nombre de la base de datos de tu Moodle. Luego vamos a la pestaña en la parte superior: Exportar y hacemos clic a Continuar para descargar la base de datos en formato SQL a nuestra computadora.

Descarga de las versiones de Moodle y requisitos necesarios

Descarga todas las versiones donde debas hacer escala desde aquí. La versión más reciente la obtienes en este vínculo.

Para actualizar Moodle a una versión superior, tu servidor debe cumplir con los requisitos necesarios en cuanto al software: PHP, MariaDB (MySQL) y Apache (o Nginx). Para saber los requisitos, en la página de descarga se muestran.

Los requisitos necesarios para tu versión actual, las posteriores, así como una lista de comprobación para conocer si tu servidor las cumple, los encuentras en tu Moodle en: Administración del sitio> Servidor >Entorno

Para instalar la versión 5.0, necesitarás al menos PHP 8.2 y MariaDB 10.11.0 (o MySQL 8.4). Con esto podrás instalar todas la versiones escalares también.

Modo mantenimiento

Pon tu sitio en Modo Mantenimiento al momento de arrancar con la actualización. Esto se hace yendo a: Administración del sitio> Servidor > Modo de mantenimiento. Haz clic a la casilla Habilitar y Guarda los cambios.

Clave de actualización

A partir de la versión 3 de Moodle, se implementó la contraseña de actualización (upgrade key). Esto busca evitar que al ejecutarse el update cualquier intruso pueda afectar su funcionamiento.

Para ello, edita el archivo config.php ubicado en la carpeta de Moodle y agrega este código:

$CFG->upgradekey = 'contraseña';

Coloca la clave entre las comillas de: contraseña. Usa una combinación de letras, números y caracteres especiales con al menos 8 dígitos.

Tu archivo config.php debería quedar parecido a este:

<?php  // Moodle configuration file

unset($CFG);
global $CFG;
$CFG = new stdClass();

$CFG->dbtype    = 'mysqli';
$CFG->dblibrary = 'native';
$CFG->dbhost    = 'localhost';
$CFG->dbname    = 'nombre_base_de_datos';
$CFG->dbuser    = 'usuario_base_de_datos';
$CFG->dbpass    = 'contraseña';
$CFG->prefix    = 'mdl_';
$CFG->dboptions = array (
  'dbpersist' => 0,
  'dbsocket' => 0,
);

$CFG->wwwroot   = 'http://tudominio.com';
$CFG->dataroot  = '/directorio/moodledata/';
$CFG->admin     = 'admin';
$CFG->upgradekey = 'contraseña';

$CFG->directorypermissions = 0777;

$CFG->passwordsaltmain = '123456';

require_once(dirname(__FILE__) . '/lib/setup.php');

Servidor de prueba

Una práctica que te recomiendo, es replicar tu servidor Moodle en tu computadora o servidor de pruebas y verificar como se ejecutaría la actualización. Con esto, puedes probar posibles errores sin afectar el funcionamiento de tu sitio en producción y solo cuando todo funcione bien, aplicarlo.

Sabrás los errores que puedan ocurrir y buscar las soluciones. Créeme, esto algunas veces puede llevar días. 😬

Para ello te recomiendo leas este artículo, donde te enseño como instalar Moodle en tu computadora.

Usa los respaldos de la base de datos y Moodledata que realizaste de tu servidor en funcionamiento.

Tip

Quédate siempre con un original de tus respaldos para que puedas comenzar de cero en caso de fallos.

Actualizando Moodle

Dirígete al directorio de publicación del servidor (por lo general /var/www o /public_html) y renombra la carpeta de tu Moodle actual, nombredecarpeta_old es una buena opción.

Si tu Moodle está volcado en el directorio de publicación sin carpeta principal que lo contenga: crea una nueva (con el nombre que te mencione en el párrafo anterior, por ejemplo) y mueve todos los archivos ahí.

Los archivos de instalación de Moodle no se reescriben, esto puede causar muchos problemas.

Sube el nuevo Moodle al servidor (el que descargaste) y descomprímelo en la carpeta de publicación; por defecto contienen una carpeta llamada moodle. Puedes renombrarla como quieras: dejarlo moodle o colocarle el nombre de tu anterior instalación; tuya es la decisión.

Si la instalación anterior estaba volcada directamente en la carpeta de publicación del servidor, debes replicar lo mismo con el nuevo Moodle.

Ahora copia el config.php de la instalación antigua en la nueva. Esto es un paso importante, ya que contiene información relevante para su funcionamiento.

Si tienes temas personalizados y son compatibles con la nueva versión, también cópialos en la nueva carpeta que está ubicada en: /carpetamoodle/theme.

También revisa si los plugins que tengas instalados son compatibles con el nuevo Moodle. Si no es así, desinstálalos y prueba a reinstalarlos después de la actualización. Esto un factor importante para decidir la migración, sobre todo si tu sitio depende de ellos.

Habilita las actualizaciones automáticas en: Administración del sitio > Servidor > Notificación de actualizaciones, para que Moodle te muestre las nuevas actualizaciones de plugins durante la migración si existieran (esto a partir de  la versión 2.4).

Importante

Como mencioné antes, las actualizaciones son escalares. Debes repetir estos pasos, con cada versión crítica o necesaria, de acuerdo a la ruta de actualización.

En servidores Linux, los permisos de archivos deben ser al menos: 755 para carpetas y 644 para archivos. Prueba con permisos más restrictivos para el config.php, como 400.

A partir de la versión 3.2, Moodle recomienda usar el formato de fichero »Barracuda», esta guía te puede servir con la migración de la base de datos.

Ejecutando la actualización

Abre tu navegador web, y coloca en la barra de dirección: http://tudominio.com/nombrecarpetamoodle/admin

Con esto se ejecutará la actualización de Moodle. En cada pantalla debes darle al botón Continuar ubicado en la parte inferior para poder avanzar.

Si colocaste la clave de actualización en el config.php, te la pedirá en cuanto quieras actualizar a una versión igual o superior a la 3.0.

Estas pantallas son referenciales y pueden variar.

En la primera pantalla te pide confirmar la actualización.

En la segunda, Moodle comprobará si tu servidor cumple con los requisitos para instalarla, de ser así, verás OK en verde en la columna Estado para cada ítem.

Es posible que te falte habilitar o deshabilitar alguna extensión del PHP si tuvieras algún error. Esto se puede hacer editando el archivo php.ini del servidor. La columna Nombre te servirá como referencia.

Se puede avanzar en la instalación, aunque algunas extensiones tengan el estado Revisar; esto se debe a que Moodle las tiene como recomendado en los requisitos, pero no imprescindible para avanzar.

Recomiendo atenderlas en lo posible.

Cuando te muestre el botón Continuar puedes seguir con la instalación.

La comprobación de plugins se realiza en la siguiente pantalla, tanto nativos de Moodle como los externos. Podrás instalar nuevas actualizaciones desde aquí si existieran. Si no son compatibles, Moodle los deshabilitará.

Cuando termines, dale clic al botón Actualizar base de datos Moodle ahora ubicado al final.

Ahora se procede a realizar la actualización propiamente dicha. Puede tardar un buen rato, no desesperes 😁, esto dependerá de la potencia de tu servidor.

Al final, si todo salió bien, verás las barras de éxito en verde. No olvides darle Continuar cuando concluya.

Para terminar la actualización, te pedirá llenes los datos necesarios en la nueva versión. Esto es sobre todo información necesaria en los nuevos módulos instalados.

Y listo, a disfrutar de tu nuevo Moodle, o debería decir a trabajar en él. 😛

Espero te sirva de ayuda este artículo. Si tienes dudas, déjalas en los comentarios.

En Evirtualplus ofrecemos servicios de actualización para Moodle.

Si quieres una cotización, contáctanos, y te haremos llegar una adaptada a tus necesidades.

Ver comentarios

  • Hola, buen día

    En este punto de tu explicación cual es la carpeta llamada publicación, me genero confusión esa parte.

    "Sube el nuevo Moodle al servidor (el que descargaste) y descomprímelo en la carpeta de publicación; por defecto contienen una carpeta llamada moodle. Puedes renombrarla como quieras:"

    Espero me puedas apoyar, saludos

    • Hola Angel.

      Cuando descargas la nueva versión de moodle, viene contenida en una carpeta llamada: moodle.

      Lo que contiene esta carpeta es lo que vaciarás en el directorio de publicación de tu hosting, donde está ubicado el moodle.

      En servidores con cpanel, por ejemplo, el directorio de publicación se llama: public_html

      Espero haya quedado más claro.
      Saludos.

  • Si en la comprobación de plugins tengo varios que muestran fallas que es lo que debo hacer?

    • Hola Emilio.
      Debes revisar su compatibilidad con la versión a actualizar.
      También verifica que hayas colocado los plugins de antiguo Moodle al nuevo en sus carpetas correspondientes.
      Espero sea de ayuda.
      Saludos.

  • Hola, muchas gracias por el artículo, estoy queriendo actualizar de 4.1.1 a 4.3.3 y me da el siguiente error:
    ...........................
    Se ha detectado una mezcla de versiones de Moodle . La actualización no puede continuar.
    El proceso de actualización de Moodle se ha detenido porque los scripts PHP que se han detectado en el directorio de Moodle corresponden, por lo menos, a dos versiones principales de Moodle anteriores.

    Esto puede causar problemas significativos más adelante, por lo que a fin de continuar, debe asegurarse de que el directorio contiene solo archivos de una única versión de Moodle.

    El método recomendado para limpiar el directorio Moodle es el siguiente:

    cambie el nombre del directorio actual de Moodle a "moodlle_od"

    creer un nuevo directorio Moodle que contenga sólo archivos nuevos de un paquete estándar descargado de Moodle o de los repositorios Moodle CVS o GIT

    mueva el archivo config.php original y los plugins no estándar de "moodle_old" al nuevo directorio Moodle.

    Cuando tenga el directorio Moodle limpio, vuelva a cargar esta página para reanudar el proceso de actualización de Moodle.
    ..............

    Hice todo el proceso que me indica, utilizando una instalación limpia en una carpeta nueva, pero aun así me sigue dando el mismo error.
    Tienes idea de que puede ser?
    Saludos y desde ya muchas gracias

    • Hola Nicolas.
      Debes hacer lo que menciona Moodle y yo en este post.
      No sobrescribir la instalación actual con la nueva: quitar o renombrar el directorio viejo y vaciar el nuevo Moodle en la carpeta de publicación donde estaba el anterior. Luego poner el viejo config.php
      Los programas como softaculous hacer precisamente esto, por lo que es un error usarlos.
      Espero sea de ayuda.
      Saludos.

  • Buenas noches

    Como siempre evirtual brindando articulos de gran apoyo. Mi pregunta es, yo estoy en 3.11.5 y quiero pasar a 4.3. ¿Debo pasar por 3.11.8? o ¿Paso directamente a 4.3?

  • Hola Diógenes, antes que todo gracias por tan buen tutorial. Estoy intentando realizar el upgrade desde 3.8.2 a 4.2
    Entiendo que debo pasar por la 3.11.8 antes, pero no logro encontrar los archivos para realizarlo. En moodle "Security-only-supported releases" está la 3.11.17, sirve esta versión? si no sirve, donde encuentro la 3.11.8?
    Otra consulta. Ahora indica que la LTS es la 3.9.0, hay que instalar esta en vez de a 3.11.8?

    • Hola Claudio.
      Como menciono en el post, necesitas: 3.11.8 o posterior
      La versión 3.11.17 servirá sin problemas.
      Saludos.

  • Hola Diógenes, en primer lugar quiero agradecerte esta guia que vengo siguiendo desde hace varios años y con la que he conseguido ir actualizando mi Moodle de manera satisfactoria.

    Queria realizarte una consulta para ver que puedes recomendarme:

    Actualmente me encuentro en la versión Moodle 3.10.4+ (Build: 20210625)

    Las características de mi servidor VPS son PHP 8.0.30 y base de datos MariaDB 10.3.39

    Me gustaría saber con estas características de mi servidor hasta que versión me sería posible actualizar desde mi versión actual.

    Por otro lado, no se si será un problema puntual pero ahora mismo estoy intentando entrar al repositorio de descargas de Moodle y no funciona ninguna de las páginas.

    Espero puedas orientarme un poco para saber que pasos seguir para poder completar mi nueva actualización.

    Muchas gracias de antemano.

    Javier

    • Hola Javier.
      Con tus especificaciones del servidor, puedes actualizar hasta la versión 4.0. Puedes actualizar directamente a él desde tu versión actual (3.10.4)
      Sobre el repositorio de Moodle, supongo que será una situación puntual, aunque yo puedo acceder sin problemas.
      Saludos.

      • Hola Diógenes, muchas gracias por tu respuesta, de verdad.

        Solo por aclarar (y por lo que veo en tu guia) ¿No sería necesario pasar a la 3.11.X antes de la 4.0?

        Y la otra cuestión sería: ¿La versión máxima que puedo instalar sería la 4.0.11+?

        Muchas gracias nuevamente.

        • No es necesario pasar por la 3.11.x en tu caso, puedes actualizar directamente.
          La ultima version de Moodle 4.0.x que exista al momento de instalar.
          Saludos.

          • Nuevamente gracias tanto por la rapidez como por la aclaración. No se el motivo que habrá para poder pasar directamente en mi caso, pero dado que en tu guia no se especifica esta excepción prefería asegurarme volviendo a preguntarte por ello. Disculpa mi reiteración.

            Aprovechando el mensaje, me gustaría preguntarte algo sobre las extensiones:

            Tengo varias extensiones instaladas para realizar distintas tareas dentro de Moodle, como calificaciones, supervisión de completado del curso, etc... Además de el tema "Adaptable".

            ¿Hay alguna manera de saber si todas las extensiones instaladas son compatibles con una versión en concreto (por ejemplo la 4.0) o hay que investigarlo una por una en el repositorio?

          • Te confirmo que puedes ir de la 3.10 a la 4.0 sin problemas, puedes verlo tú mismo en la documentación correspondiente.

            Debido a la gran cantidad de versiones de Moodle, y a la costumbre de los desarrolladores Moodle de cambiar constantemente los requisitos de ellas (lo cual es una pésima practica por su parte), en mi guía debo condensar las versiones y hasta donde deben actualizar, para hacerla más sencilla, práctica y universal.

            Las extensiones debes consultar una a una su compatibilidad, no conozco otra forma de hacerlo.

            Saludos.

  • Hola tengo un moodle en version 3.9, que actualice a 3.10.11 pero necesito pasar a 4.3 que es la última. En la pagina de moodle no esta para descargar ya la version 3.11.8. Puedo migrar de 3.10.11 a 4.3 actualizando php y mariadb a las versiones requeridas por 4.3?
    Gracias

    • Hola Martin.
      No puedes actualizar de la versión 3.10.11 a la 4.3.
      Como menciono en el post, necesitas la 3.11.8 o posterior.
      Aquí puedes descargar la versión 3.11.17 que es la ultima de esa rama, a día de hoy.
      Saludos.

  • Hola, buenos días:

    Estoy intentando actualizar de la versión 4.0.10 a la 4.2.2 y cuando voy https://www.midominio.com/admin, me aparece "nueva instalación", cuando otras veces me pide contraseña y luego se empieza a actualizar a la nueva versión.

    Entiendo que si digo que sí a "nueva instalación" se borra todo lo que tengo ¿no?

    He modificado en el servidor la versión de php a 8.0 y creado una db MySQL 8.0 a la que he importado lo de la vieja. Desconozco que puede estar pasando.

    Buen post.

    Saludos cordiales,

    • Hola David.
      Es difícil dar una respuesta sin poder acceder a la instalación.
      Revisa si en el config.php de Moodle actualizaste la información de la nueva base de datos.
      Saludos.

      • Hola,
        Sí, puse los datos correctamente. Si Moodle no lograse contactar con la base de datos, no podría hacer instalación nueva ni actualizar versión.
        En este caso, lo que no puedo es actualizar.
        Por si te hubiera pasado alguna vez.
        Saludos

        • Sí tienes los datos correctamente en el config.php, debes revisar si se esta conectando a la base de datos del servidor.

  • Hola Diógenes, excelente y muy detallada explicación, muchas gracias.
    Tengo una consulta que tal vez escapa un poco al tema principal de actualización.
    Tengo mi Moodle en versión 3.9.20+ y quiero pasarme a la versión LTS 4.1
    Es posible cambiarme a un servidor nuevo en donde esté instalado 4.1 y cargar en dicho ambiente la base de datos y moodledata?

    • Hola Marco.
      Recomiendo migrar al nuevo servidor tu Moodle 3.9.20+ y hacer la actualización a la 4.1 en él.
      Colocar solo el moodledata y la base de datos en un Moodle ya montado, puede traer inconvenientes, sobre todo si tienes plugins instalados.
      Saludos.

  • Hola amigo
    Hice una actualización de Moodle 3.9 a 3.11 y luego a 4.2 al actualiza r no me muestra la imágenes. Que podrá ocurrir allí?

    • Hola Yovanny.
      No podría darte una respuesta sin poder ver la instalación que hiciste, pueden ser muchas cosas a revisar.
      Lamento no ser de mas ayuda.

1 2 3 5
Compartir
Publicado por
Diógenes Mata