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.1. Si tienes, por ejemplo, la versión 4.2.3 o posterior, bastará con que migres directamente a la 5.1.

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.1, 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.1. 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.1

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.1; 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.1, 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 = 'mariadb';
$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 = 'https://dominio.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.

Pasos adicionales para actualizaciones a partir de Moodle 5.1 o superior

En Moodle 5.1, los archivos principales se movieron a la carpeta (directorio) public. Por ello, es necesario hacer algunos cambios del lado del servidor para que la actualización pueda ejecutarse con éxito.

En tu hosting debes configurar la carpeta de publicación de Moodle como: /public. Esto puedes lograrlo usando las herramientas de tu panel de control o accediendo como administrador a tu servidor.

Por ejemplo: si tienes CPanel, en las opciones de Dominio, edítalo y luego en el campo New Document Root, cambia el directorio de publicación a: /public

Dicho de otra forma: dominio.com/public. Donde dominio.com es el dominio donde está instalado el Moodle y /public es la nueva carpeta de publicación.

Dato

En CPanel el dominio principal con el que se crea la cuenta, no puede ser cambiada la carpeta de publicación a public.

Recomiendo migrar un dominio adicional a CPanel para poder asignarlo a la carpeta public, o en su defecto crear subdominios, a la que, si se puede cambiar la carpeta raíz.

Por otra parte, si tienes acceso al servidor como Administrador, puedes cambiar el directorio de publicación de Moodle haciendo uso de los Hosts Virtuales, para que apunte al directorio public.

Si tienes Apache, quedaría algo así:

Alias /directoriomoodle /var/www/directoriomoodle/public
<Directory /var/www/directoriomoodle/public >
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

En Nginx:

root /var/www/moodle/public;

Los directorios como: /var/www pueden variar dependiendo del sistema operativo de tu servidor.

Debes reiniciar el servidor web después de estos cambios:

Para Apache:

service apache2 restart

Para Nginx:

service nginx restart

Moodle 5.1 recomienda instalar Composer en el servidor, esto no es obligatorio, al menos por ahora. Por lo que al momento de actualizar el Moodle puedes ver una advertencia como esta:

Puedes ignorarla sin problemas.

Si deseas instalarlo, como administrador de tu servidor usa estos comandos:

sudo apt-get install -y composer
cd  /var/www/directoriomoodle
sudo -u www-data composer install --no-dev --classmap-authoritative
sudo chown -R www-data:www-data vendor
sudo chmod -R 755 /var/www/directoriomoodle

Esto para servidores basados en Ubuntu.

Nota

A parte de estas consideraciones, la actualización es igual en los otros pasos que se mencionan a continuación.

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://dominio.com/directoriomoodle/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.
    Genial el tutorial.
    Una consulta.
    Tengo moodle 3.8 y al calificar arroja un error 403, revisé permisos y nada.
    Puedo actualizar a 3.10 con la aplicación Softacoulous del hosting?

    • Hola Ulises.
      Si seguiste los pasos al pie de la letra deberías poder actualizar sin problemas.
      Si te da errores 403 recomiendo consultar con tu hosting.
      Softaculous permite actualizar Moodle (si lo has instalado con esa herramienta del hosting), aunque no es mi método favorito, ya que arroja errores, sobre todo cuando tienes plugins de terceros en Moodle.
      Lamento no ser de más ayuda.
      Saludos.

  • Ayuuudaaaa por favor!!! Tengo ubuntu server 18.04 y moodle 3.9.1+
    Miré que en algunos sitios al momento de calificar, los archivos pdf se mostraban sin necesidad de descargarlos, así que averigué como podia implementar eso en mi plataforma. Instalé en mi servidor ubuntu gosthscript y luego instale los plugins assignsubmission_pdf y assignfeedback_pdf, todo iba bien pero en la comprobación de plugins me sale este error:

    Actualizando la versión
    assignfeedback_pdf
    Se encontró errores en los archivos de la base de datos XML

    Más información sobre este error

    ×Información de depuración: Errors found in XMLDB file: PATH attribute does not match file directory: mod/assign/feedback/pdf/db
    Error code: ddlxmlfileerror
    ×Trazado de la pila (stack):
    line 354 of /lib/ddl/database_manager.php: ddl_exception thrown
    line 370 of /lib/ddl/database_manager.php: call to database_manager->load_xmldb_file()
    line 654 of /lib/upgradelib.php: call to database_manager->install_from_xmldb_file()
    line 1917 of /lib/upgradelib.php: call to upgrade_plugins()
    line 711 of /admin/index.php: call to upgrade_noncore()

    y cada vez que ingreso como administrador llega a la pagina de comprobación de plugins.

    he podido legar hasta el listado de plugins pero en el que presenta error no me aparece ninguna opcion ni para borrar ni nada.

    Agradezco de antemano si me puedes colaborar en algo.

    • Cuando pasa ese error es por una versión incompatible, lo que tienes que hacer es ubicarte en la carpeta del plugin con el problema, localizas la carpeta db y ahí adentro borras el archivo install.xml e install.php, aunque por precaución primero respáldalos. O simplemente renómbralos y con eso se solucionará.

    • Hola Diego.
      Es difícil dar una respuesta a tu error sin tener acceso al servidor.
      Recomiendo restaurar una copia de seguridad de tu Moodle y probar nuevamente, o contactar con el soporte de tu hosting.
      Lamento no ser de más ayuda.
      Saludos.

  • Hola Diógenes,
    Fantástica tu guia para actualizar Moodle. Tengo una duda. Mi versión es 3.6.9 y queremos actualizarla a la 3.10. Según leí en la guia se puede hacer directamente pero me preocupa lo siguiente: entre los requisitos dices que la BDMaria debe ser 10.2.29 y yo tengo 10.0.38, ¿esto quiere decir que no puedo migrar a 3.10 sino a una inferior?

    Saludos y gracias de antemano

    • Hola Ana.
      Es correcto lo que afirmas, puedes actualizar hasta Moodle 3.8.
      Te recomiendo actualizar MariaDB a la brevedad, esta versión no cuenta con soporte desde hace tiempo.
      Saludos.

  • Hola Diogenes

    Intente actualizar de la 3.7.4 a la 3.10 y me salio un error con que no encontraba opcache y que tenia codifcicacion utf8, ademas me informava que deberi teer una version de PHP superior a 5.5 mi servidor dice que esta en 7.3.

    Adcionalemente quisiera preguntar si tiene que ver con que mi servidor es un hosting compartida WMH??

    Asi que me gustyaria saber si hay solución, o puede volver a copiar todos los archivos desde cpanel en sus carpetas como estaban antes de iniciar el proceso.

    Gracias agradezco tu respuesta y por regalarnos este artículo actualizado.

    • Hola Gerardo.
      1) El error de opcache es debido a una extensión faltante de tu PHP, debes instalarla o pedirte a tu hosting que la habilite.
      1) Sobre la codificación UTF8, puedes saltártela, aunque recomiendo cambiar la codificación a UTF8mb4 en cuanto puedas.
      3) Los requisitos de PHP debes mirarlo en cada actualización, depende de la versión de Moodle, según la información que pongo en mi post, para 3.10 es necesario 7.2 como mínimo.
      4) WMH no afecta la instalación de Moodle.

      No puede darte una respuesta a lo último sin poder ver cómo está instalado tu Moodle en cpanel.

      Espero sea de ayuda.
      Saludos.

  • Hola,
    Excelente tu sitio.
    >Tengo una consulta. En mi sitio, ingresando a ADMINSITRACION - NOTIFICACIONES no aparece la versión al final. Y si voy a Moodle Docs para esta versión tampoco...
    Tengo alguna otra opción? Se me ocurre desde ftp accediendo a algún archivo que guarde la versión?
    Gracias por tu ayuda.

    • Hola Luis.

      Es bastante particular que no se muestre esta información en Notificaciones.

      Si tienes acceso por ftp, ve a la carpeta donde está instalado el Moodle y lee el archivo version.php, que está en la raíz.

      Dentro de él encontraras la información de la versión, casi al final, en la línea que pone: $release

      Espero sea de ayuda.
      Saludos.

  • Hola Diógenes.
    Buenas.
    Muy bueno tu blog.
    Tengo actualmente la versión de moodle 3.1.15+ y quisiera actualizar a la 3.9.3
    Sé que se debe pasar a la 3.5 primeramente, y luego ya a la ultima.
    Tengo un problema con las actualizaciones de php y demás...
    Así que lo que hice fue instalar en el mismo servidor el nginx
    ahora, haciendo copia de mi moodle actual (BD, datos e instalador con los temas, etc), realicé en esa copia, la puesta del 3.5, pero, desde el inicio me muestra texto puro, es decir, sin tema, como lo muestras en tu imagen de la "comprobación del servidor". Supuse que después lo podía corregir, ya que sabia que el tema (essential) en la versión para el moodle 3.1, no era soportado por el moodle 3.5. Pero, terminada la actualización, e instalando un nuevo tema, par esta versión, y utilizándolo este, sigo viendo puro texto. No se activa el tema.
    Podré solucionar esto, activando previamente a la copia de todo, las opciones de las "notificaciones de actualización" ?, o también será cuestión de permisos?
    De antemano, gracias.

    • Hola Juan.
      Si revisaste los permisos y están bien seteados: 644 y 755 al menos, no creo que sea el problema.
      Da la impresión de que la actualización de la base de datos no la está ejecutando bien, pero es difícil establecer el problema, sin poder acceder al servidor.
      Lamento no poder ser de más ayuda.
      Saludos.

  • Hola, muy buena tu entrada, super clara y bastante ejemplificada, gracias.
    Tengo una duda con respecto a lo siguiente, de que manera podemos identificar una versión critica de Moodle? que es lo que debería buscar o tener en cuenta que me ayude a identificar esa versión critica a la que debo llevar mi instalación antes de irme a la ultima versión?
    Aquí gracias a la ruta de instalación que nos das, nos lo dejas muy claro, pero para un futuro, como puedo yo identificarlo?
    De antemano muchas gracias!

    • Hola Luis.
      Las versiones criticas son "en teoría" las LTS.
      Aquí puedes ver una lista de todas las versiones de Moodle, aquellas marcadas como LTS son versiones criticas (o versiones a largo plazo). Eso se cumplió bastante bien hasta la 3.1.
      Y antes puse entre comillas: en teoría, ya que en la practica es mucho mas complejo esto de las actualizaciones.
      En cada nueva versión Moodle cambia los requisitos de las versiones, incluso aquellas ya establecidas para versiones anteriores, es bastante caótico 🙄, por eso cree mi propio mapa de actualización, el cual debo rehacer cada vez que sacan uno nuevo 😅
      Te recomiendo que a la versión que quieras migrar, revises su documentación para verificar los requisitos necesarios.
      Saludos.

  • Hola! Instalé la versión 3.9.1+ y ya lo tengo en producción, para pasar a las 3.9.2+ que procedimiento me recomendás?

    Agradezco desde ya tu respuesta.

    Anibal

  • Hola si quiero actualizar el tema o un plug in en particular cuales serian los pasos a seguir? muchas gracias

  • Hola Diogenes. Gracias por la información.

    Estoy a punto de actualizar un moodle 3.7.2 (con un peso aprox de 350gb) a 3.9.
    Entiendo que puedo actualizar directamente de esta versión a 3.9.

    Por otro lado, tengo la intención de instalar un nuevo moodle, desde cero, y allí comenzar de nuevo y solo migrar los cursos mas importante de este anterior que ya tiene varios años y muchos gigas acumulados. ¿sabrás decirme si es posible exportar un curso de un moodle 3.7.2 e importarlo sin problemas en uno nuevo, vacío, versión 3.9? O hay algún tipo de incompatibilidad de versiones?. Gracias, Ezequiel.

    • Hola Ezequiel.
      Si, puedes actualizar desde Moodle 3.7.2 a 3.9.
      No deberías tener problemas con la exportación, es compatible.
      Saludos.

Compartir
Publicado por
Diógenes Mata