Administrar Moodle por línea de comandos

¿Y si te digo que puedes ahorrar mucho tiempo en la gestión de tu web? Como lo lees, administrando Moodle por línea de comandos puedes hacer muchas más tareas en menos tiempo.
Sí, ya sé que a través de la interfaz o, mejor dicho, el backend de Moodle, también se pueden hacer un montón de tareas de forma fácil, pero la línea de comandos te da más control e incluso la posibilidad de hacer algunas automatizaciones.
Si te interesa, quédate porque en esta guía te explico cómo administrar Moodle por línea de comandos, paso a paso y con ejemplos prácticos. Verás cómo automatizar tareas, gestionar usuarios, hacer copias de seguridad y mucho más.
¿Vamos?
Tabla de contenidos:
¿Qué necesito para utilizar la consola de Moodle?
El único requisito para trabajar con Moodle por línea de comandos es tener acceso SSH en tu plan de hosting.
Recuerda que en LucusHost tienes la posibilidad de acceder por SSH en nuestros planes de Hosting Moodle. Al utilizar la tecnología CloudLinux, todas las cuentas de hosting se encuentran en un entorno aislado, como si fuese un VPS «mini», por lo que SSH no supone ningún problema de seguridad.
Lo único que tienes que hacer es habilitar SSH en tu plan de hosting. Esto puedes hacerlo desde la sección «Servicios» – «Mis servicios» de tu área de clientes.
Si tienes dudas a la hora de conectarte, te recomiendo que le eches un ojo a una guía que publicamos hace un tiempo: Cómo crear una conexión SSH.
Comandos básicos de Moodle
A continuación, te voy a mostrar algunas de las tareas más habituales de Moodle y sencillas que puedes realizar a través de línea de comandos.
Empezamos por la más básica de todas, ¿sabes cuál es?
Venga 🙂
Cómo instalar Moodle por línea de comandos
No podía hacer una guía sobre cómo administrar Moodle por línea de comandos sin explicarte cómo instalar este CMS.
Spoiler: es una tarea muy básica (diría que la que más), pero no es la más sencilla o la que más rápido se pueda hacer. Pero explicarte cómo hacerlo es casi una obligación. ¿Vemos?
1. Descarga Moodle
Lo primero de todo es dirigirnos a la ruta en la que se va a realizar la instalación:
cd /home/lucushost/moodle.alvarovillar.lucusprueba.es
Luego, utilizando el comando wget, descargaremos Moodle. En este descargamos la versión 4.3:
wget https://download.moodle.org/download.php/direct/stable403/moodle-latest-403.tgz
Una vez que se haya descargado, hay que descomprimir los ficheros de instalación:
tar -xvzf moodle-latest-403.tgz
Por defecto, el contenido se descargará dentro de una carpeta llamada moodle. Puedes mover el contenido de esa carpeta a la ruta en la que estamos a través del siguiente comando:
mv moodle/* moodle/.* .
Una vez que tienes el contenido en el directorio de tu instalación, elimina la carpeta moodle y el fichero moodle-latest-403.tgz:
rm -rf moodle rm moodle-latest-403.tgz
2. Crea la carpeta moodledata
El siguiente paso es crear la carpeta moodledata.
Esta es la carpeta en donde se almacenará todo el contenido subido a la instalación de Moodle.
¡Ojo! Por seguridad, esta carpeta debe crearse en la raíz del hosting, para ello ejecuta:
mkdir /home/lucushost/moodledata
Y luego con el comando chmod le asignamos los permisos correctos:
chmod 770 /home/lucushost/moodledata
3. Crea la base de datos
Ahora que tienes la estructura de ficheros de Moodle, el siguiente paso es crear la base de datos para la instalación. Esto puedes hacerlo a través de la interfaz gráfica de cPanel en el apartado «Asistente de bases de datos MySQL».
Lo primero de todo, nómbrala:
A continuación, crea el usuario y una contraseña.
Por último, asigna todos los permisos. Recuerda hacer clic en «Hacer cambios» para que se aplique la configuración.
4. Ejecuta el script de la instalación
Ahora que tienes la base de datos creada, ya puedes ejecutar el script de instalación de Moodle:
php admin/cli/install.php \ --chmod=2770 \ --lang=es \ --wwwroot=https://moodle.alvarovillar.lucusprueba.es \ --dataroot=/home/lucushost/moodledata \ --dbtype=mariadb \ --dbhost=localhost \ --dbname=lucushost_nombrebbdd \ --dbuser=lucushost_usuariobbdd \ --dbpass=contraseñabbdd \ --fullname="Mi Plataforma Moodle" \ --shortname="Moodle" \ --adminuser=usuariomoodle \ --adminpass=contraseñamoodle \ --adminemail=correodemoodle@dominio.com \ --non-interactive \ --agree-license
Importante: cambia los valores según lo que necesites para tu instalación.
A continuación, te explico el significado de cada parámetro del comando:
php admin/cli/install.php
Ejecuta el script de instalación de Moodle desde la línea de comandos utilizando PHP.
--chmod=2770
Define los permisos que tendrás las carpetas y archivos de Moodle. En este ejemplo establecemos 2770:
- 2: garantiza que todos los ficheros y archivos dentro de la carpeta de Moodle tengan los mismos permisos
- 7: permisos de lectura, escritura y ejecución para el propietario.
- 7: permisos de lectura, escritura y ejecución para el grupo.
- 0: sin permisos para otros usuarios.
--lang=es
Establece en español el idioma de la instalación de Moodle.
--wwwroot=https://moodle.alvarovillar.lucusprueba.es
Define la URL de la instalación de Moodle. Debe de coincidir con el dominio o subdominio que utilices para realizar la instalación.
--dataroot=/home/lucushost/moodledata
Es la ruta de la carpeta “moodledata” que es donde se almacenará todo el contenido que subamos al Moodle.
--dbtype=mariadb
Define el tipo de base de datos que utilizará Moodle. En este caso es mariadb, pero si la base de datos fuera MySQL, deberías de establecer mysqli.
--dbhost=localhost
Especifica el servidor de la base de datos. En este caso, al almacenarse la base de datos en el propio hosting, el servidor debe de ser “localhost”.
--dbname=lucushost_nombrebbdd
Nombre de la base de datos que utilizará la instalación.
--dbuser=lucushost_usuariobbdd
Nombre del usuario de la base de datos.
--dbpass=contraseñabbdd
Contraseña del usuario de la base de datos.
--fullname="Mi Plataforma Moodle"
El nombre completo del sitio de Moodle que se mostrará en la cabecera de la web.
--shortname="Moodle"
El nombre corto de la instalación de Moodle. Se utiliza como identificador en algunas configuraciones internas de la instalación.
--adminuser=usuariomoodle
El nombre de usuario de administración de Moodle (con el que accederemos a la plataforma)
--adminpass=contraseñamoodle
La contraseña de acceso a Moodle.
--adminemail=correodemoodle@dominio.com
El correo electrónico del administrador de Moodle. Debe de ser una la que tengamos acceso, ya que se utiliza para restablecer la contraseña y también para enviar notificaciones de Moodle.
--non-interactive --agree-license
Con este parámetro indicamos que la instalación se realice automatizada y sin requerir interacción manual.
--agree-license
Acepta los términos de la licencia de Moodle para que se pueda realizar la instalación.
En cuanto la instalación se haya completado, verás este mensaje:
Actualizar Moodle
Si necesitas actualizar Moodle a una versión superior, puedes hacerlo mediante este comando:
php admin/cli/upgrade.php
Si ya tienes Moodle trabajando con la última versión, se mostrará un mensaje como este:
Activar el modo mantenimiento
Siempre que realices modificaciones o actualizaciones en tu Moodle, puede ser interesante activar el modo mantenimiento para evitar que los usuarios accedan al sitio mientras realizas cambios.
A través de terminal, puedes activar el modo mantenimiento con el siguiente comando:
php admin/cli/maintenance.php --enable
Para desactivarlo usa el siguiente comando:
php admin/cli/maintenance.php --disable
Cambiar la contraseña de un usuario
También hay un comando que te permite modificar rápidamente la contraseña de acceso de un usuario. Esto es especialmente útil si no tienes acceso al backend de tu instalación.
Basta con ejecutar:
php admin/cli/reset_password.php --username=usuariomoodle --password=nuevacontraseña
Borrar la caché
La caché de Moodle almacena ficheros temporales que ayudan a mejorar el rendimiento de la web. En cambio, si realizas cambios importantes en tu web, como actualizaciones de módulo o cambios en las configuraciones internas, es importante eliminar la caché para asegurarse que el sitio funcione correctamente.
Para ello simplemente debes de ejecutar el siguiente comando:
php admin/cli/purge_caches.php
Comandos avanzados de Moodle
Acabamos de ver comandos Moodle que pueden ayudarte a realizar tareas básicas, como la instalación o actualización de tu aplicación. Ahora vamos a damos un paso más.
Hay una serie de comandos de Moodle que te permiten realizar y programar tareas avanzadas, sin tener que hacerlo desde la interfaz; ahorrando así mucho tiempo en la gestión de tu web.
¿Vemos de cuáles se trara?
Hacer un backup de un curso
Es algo en lo que siempre hacemos hincapié. Da igual el tipo de web que tengas, asegúrate siempre de tener una copia de seguridad. Nunca sabes cuando algo puede ir mal y necesites tirar de un backup para dejarlo todo funcionando en el menor tiempo posible.
Ya sabes que si tienes tu Hosting Moodle con nosotros, dispones de la herramienta Premium Backup en tu área de clientes. Con ella tendrás dos copias de seguridad al día de toda tu cuenta y te permite realizar cualquier restauración a golpe de clic.
Pero si necesitas un backup de un curso en concreto, algo bastante habitual si trabajas con este CMS, puedes hacerlo tú mismo a través de la línea de comandos de Moodle. Tan solo tienes que ejecutar:
php admin/cli/backup.php --courseid=ID_del_curso --destination=/ruta/del/backup
Recuerda sustituir ID_del_curso por el identificador del curso sobre el que quieres hacer el backup.
Eliminar un curso
¿Y si necesito eliminar un curso? ¿También puedo hacerlo a través de la línea de comandos de Moodle?
Pues claro que sí. Simplemente tienes que ejecutar el siguiente comando:
php admin/cli/delete_course.php --courseid=ID_DEL_CURSO
Una vez que lo ejecutes, te pedirá confirmación. Para indicar confirmar que lo quieres borrar, debes escribir en la terminal: y
Convertir tablas de InnoDB a Barracuda
¿Tienes en Moodle un aviso que te recomienda convertir las tablas InnoDB a Barracuda?
El principal motivo es que las tablas Antelope no admiten más de 10 columnas de texto, por lo que si utilizas plugins o complementos en tu aplicación que requieran más columnas de texto, es posible que surjan errores o fallos que afecten al funcionamiento de tu sitio web.
Además, Barracuda ofrece mejoras a nivel de rendimiento y optimización, así que más que una recomendación es una obligación 🙂
Aunque hay varias formas de hacerlo, por ejemplo mediante un script o manualmente en phpMyAdmin, la forma más sencilla es a través de la línea de comandos de Moodle. Para realizar esta tarea tan solo debes ejecutar el siguiente comando:
php admin/cli/mysql_compressed_rows.php -f
Las aplicaciones que trabajen con una versión reciente de Moodle no necesitan hacer este cambio. De hecho, si ejecutas este comando, verás un mensaje de este tipo:
Revisar la estructura de la base de datos
Algunos problemas de Moodle pueden estar causados por errores en la estructura de la base de datos. Por ejemplo, tablas incompletas o configuraciones incorrectas.
Pero, ¿cómo sé si mi base de datos tiene algún error? Tienes este comando que automáticamente revisa la estructura y te informa si detecta algún error en la base de datos:
php admin/cli/check_database_schema.php
¡Ojo! Si detecta algún error no lo soluciona, solamente te informa.
Administrar tareas programadas de Moodle
Las tareas programadas de Moodle son procesos que se ejecutan de forma automática para garantizar el funcionamiento de la web. Entre ellas se incluyen el envío de correos, tareas de mantenimiento, vaciado de caché, generación de informes…
Si quieres saber cuáles son las tareas programadas de tu Moodle, puedes ejecutar este comando para obtener un listado:
php admin/cli/scheduled_task.php --list
Como puedes ver, al ejecutar el comando obtienes un listado con el nombre de la tarea, frecuencia de ejecución, última y próxima realización:
Si tienes tareas pendientes y quieres que se ejecuten ya, aplica el siguiente comando:
php admin/cli/cron.php
Para que Moodle funcione correctamente, es muy recomendable automatizar la ejecución de este comando. De no ser así, algunas tareas podrían no ejecutarse.
La recomendación es configurar el comando php admin/cli/cron.php para que se ejecute cada minuto. Puedes establecer esta configuración desde el panel de control cPanel, accediendo a la sección «Trabajos de cron».
La configuración que debes establecer es la siguiente:
Hecho esto, pulsa en «Añadir nuevo trabajo de cron» y guarda los datos.
De esta forma, cada minuto se ejecutará php admin/cli/cron.php, es decir, se ejecutarán todas las tareas programadas de Moodle.
Si quieres entender mejor como funciona esta opción de cPanel, aquí te dejo una guía sobre tareas cron en la que se explica paso a paso cómo crearlas y configurarlas correctamente en tu plan de hosting.
Domina la terminal de Moodle y ahorra tiempo
Si es la primera vez que ves algo acerca de la terminal de Moodle, puede parecer complicado. Esto mismo le pasa a muchos usuarios cuando están empezando con WP-CLI de WordPress.
Eso sí, en cuanto te familiarizas un poco con los comandos más básicos y realices alguna tarea más avanzada, descubrirás todo el potencial de la terminal. Verás que trabajar por línea de comandos te da mucho más control sobre tu web, pero también te permite ahorrar tiempo y automatizar tareas, algo importantísimo sobre todo si tienes una instalación grande.
Con el tiempo ya me dirás si prefieres la terminal o el backend 😛
No hay comentarios