En este artículo explicamos cómo instalar Moodle en Debian 11 Bullseye paso a paso, de tal manera que puedas experimentar con una de las plataformas de e-learning más ampliamente utilizadas sobre tu propio servidor o VPS Debian.
NOTA: Dispones de otras entradas sobre la instalación de Moodle en otras versiones de Debian que podrás encontrar fácilmente con nuestro buscador.
Tabla de contenidos
Antes de instalar Moodle en Debian 11 Bullseye
Para poder seguir los pasos de esta guía de instalación de Moodle en Debian 11 Bullseye necesitas partir de la siguiente base:
- Un sistema Debian 11 Bullseye actualizado.
- La pila LAMP o similar (servicio web con PHP 8.1 ó superior y un motor de bases de datos, si es MariaDB debe ser 10.6 ó superior).
- Un usuario con privilegios de sudo.
- Acceso a Internet.
En caso de no tener preparado el entorno necesario te puede resultar útil consultar previamente nuestra guía de instalación de la pila LAMP en Debian 11 Bullseye.
En este tutorial realizaremos una instalación básica en la que Moodle formará parte del sitio web por defecto del servidor Debian 11. Para instalaciones más complejas, servidor virtual, seguridad SSL, etc. conviene estar familiarizado con la configuración del servicio web, así que seguramente te interesará también nuestra guía de instalación y configuración de Apache en Debian 11.
Si ya tenemos todo listo, es el momento de regular la altura más cómoda de nuestra mesa, abrir un navegador y una terminal de consola, y empezar a trabajar.
Cómo descargar Moodle para Debian 11 Bullseye
Vamos a descargar Moodle para Debian 11 Bullseye desde la página de descarga de la versión actual del sitio del proyecto.
Si en el momento de visitar esta página se muestran dos posibilidades, una con un número de versión normal y otra con su número de versión terminado en +, escogeremos esta última, ya que la primera es el lanzamiento original de la versión actual, y no incluiría todas las correcciones que ya incorpora la versión +.
Sea cual sea la versión elegida disponemos de paquetes en formato .zip y formato .tar.gz. Seguiremos el enlace «Download tgz» que nos llevará a una página de descarga automática.
En caso de trabajar de forma remota, la página de descarga automática incluye el enlace de descarga que podemos usar desde consola con alguna herramienta como wget:
~$ wget https://download.moodle.org/download.php/direct/stable404/moodle-latest-404.tgz
Cómo instalar Moodle en Debian 11 Bullseye
Para instalar Moodle en Debian 11 Bullseye hay que realizar una serie de preparativos en el sistema que permitan que el instalador web funcione sin encontrar problemas. A continuación explicamos todos estos preparativos con el suficiente detalle.
Archivos de Moodle
Descomprimimos el archivo que acabamos de descargar en su directorio de instalación definitivo:
~$ sudo tar xf moodle-latest-404.tgz -C /var/www/html/
Moodle necesita también un directorio de datos que crearemos fuera del alcance de la navegación web:
~$ sudo mkdir /var/www/moodledata
Como Moodle necesita escribir en ambas carpetas a través del servicio web, cambiaremos su propiedad al usuario con el que corre el servicio:
~$ sudo chown -R www-data: /var/www/html/moodle/ /var/www/moodledata/
PHP
Moodle requiere la presencia en Debian 11 Bullseye de algunas extensiones de este lenguaje que instalaremos desde los repositorios del sistema.
Como Moodle no funciona con la versión de PHP incluida en Debian 11, sino con algunas del repositorio alternativo, habrá que indicar el número de versión en el nombre de los paquetes que vamos a instalar; por ejemplo, para la versión 8.2:
~$ sudo apt install -y php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-soap php8.2-xml php8.2-xmlrpc php8.2-zip
También editaremos el archivo php.ini para realizar algún ajuste, indicando igualmente en la ruta del archivo el número de versión utilizada. Por ejemplo, para la versión 8.2:
~$ sudo nano /etc/php/8.2/apache2/php.ini
Buscamos la directiva max_input_vars:
... ;max_input_vars = 1000 ...
Está desactivada, así que podemos activarla eliminando el carácter ; inicial y modificando su valor por 5000, o la dejamos como está y añadimos en la siguiente línea la nueva definición:
... ;max_input_vars = 1000 max_input_vars = 5000 ...
Hecho el cambio guardamos y cerramos el archivo.
Finalmente, recargamos la configuración del servicio web para que se puedan utilizar las nuevas extensiones y ajustes:
~$ sudo systemctl reload apache2
Base de datos
Moodle puede trabajar con varios motores de bases de datos, entre ellos los más utilizados en Debian 11 Bullseye. En esta sección veremos cómo configurar los más populares.
MariaDB/MySQL
Conectamos al servicio con el cliente mysql y un usuario administrador:
~$ mysql -u root -p
Si no tiene un usuario administrador, quizás tengas que acceder así:
~$ sudo mysql
En cualquier caso, creamos la base de datos:
> create database moodle character set utf8mb4 collate utf8mb4_unicode_ci;
Creamos el usuario:
> create user moodle@localhost identified by 'XXXXXXXX';
Concedemos los permisos necesarios al usuario sobre la base de datos:
> grant all privileges on moodle.* to moodle@localhost;
Refrescamos la tabla de permisos:
> flush privileges;
Y cerramos la conexión:
> exit
Instalador web
Es el momento de acceder al instalador web de Moodle para Debian 11 desde un navegador, usando como dirección la que corresponda a la que hemos utilizado para integrar Moodle en el servicio web.
En este tutorial hemos instalado Moodle como parte del sitio web por defecto del servidor Debian 11, así que indicaremos la dirección IP, dominio, nombre DNS, localhost si trabajamos localmente, etc. añadiendo la ruta de instalación relativa a la raíz de documentos web del sitio por defecto, moodle/ en este caso.
Es importante que si el sitio Moodle va a ser accedido por usuarios desde red, se utilice la misma dirección para la instalación. Es decir, no se puede realizar la instalación localmente (usando localhost como dirección) y que después los usuarios accedan por una dirección IP, un dominio, etc. Sólo puede haber una dirección de acceso.
Por ejemplo, para realizar este tutorial hemos utilizado un servidor Debian 11 accesible a través del subdominio debian11.local.lan, y hemos instalado Moodle en la ruta /var/www/html/moodle, así que usaremos http://debian11.local.lan/moodle como URL.
Seleccionamos el idioma de la instalación, que también será usado como idioma por defecto del nuevo sitio Moodle, y continuamos.
En la siguiente página del instalador confirmaremos las rutas de instalación:
El único directorio que podemos modificar es el de datos, aunque en este ejemplo hemos usado la misma ruta que el instalador propone por defecto.
En el siguiente paso elegimos el tipo de motor de base de datos que utilizaremos con Moodle:
Hay que tener cuidado al elegir, porque Moodle considera MariaDB y MySQL como motores diferentes y trabaja de forma distinta con cada uno de ellos.
Seguidamente configuramos la conexión a la base de datos:
Introducimos base de datos, usuario y contraseña tal como los creamos en pasos anteriores.
Antes de iniciar el proceso de instalación será necesario aceptar expresamente los términos y condiciones de uso de Moodle:
Continuamos y el instalador de Moodle realizará una comprobación del servidor Debian 11 para ver si se cumplen los requisitos de instalación:
Si has seguido los pasos anteriores se cumplirán todos los requisitos y podremos continuar con la instalación.
Comienza el verdadero proceso de instalación que mostrará una larga lista de tareas y su resultado:
Este proceso tomará unos instantes y finalmente nos permitirá continuar con la configuración del usuario administrador:
Indicaremos un nombre de inicio de sesión, contraseña, nombre completo, dirección de correo-e, ubicación, zona horaria, etc.
En el siguiente paso proporcionaremos información identificativa del nuevo sitio Moodle:
A partir de Moodle 4 es obligatorio introducir en esta sección una dirección de correo para los usuarios de la plataforma.
Tras completar este paso el instalador nos llevará directamente al área personal con la sesión de administrador ya iniciada, donde se nos mostrará un aviso sobre el nuevo panel lateral:
Cerrado dicho aviso tendremos a la vista la nueva interfaz del área personal:
¡Ya podemos empezar a trabajar en nuestro nuevo sitio Moodle!
Post-instalación de Moodle en Debian 11 Bullseye
Servicio Cron
Moodle necesita realizar tareas de mantenimiento a través del servicio Cron de Debian 11, así que crearemos un archivo de configuración para este servicio:
~$ sudo nano /etc/cron.d/moodle
El contenido será la siguiente línea:
*/1 * * * * www-data /usr/bin/php /var/www/html/moodle/admin/cli/cron.php
Con esta configuración se lanzarán las tareas en intervalos de 1 minuto. Puede parecer un intervalo muy corto pero realmente es lo que pide la documentación de Moodle.
Los cambios quedan aplicados nada más cerrar el archivo.
Puedes comprobar que las tareas de mantenimiento se ejecutan correctamente accediendo desde el menú principal a «Administración del sitio / Informes / Estado del sistema» y observando la información de la sección «Cron en ejecución«.
Conclusión
Ahora que ya sabes cómo instalar Moodle en Debian 11 Bullseye ya puedes experimentar con este CMS orientado a e-learning, tanto para aprender a utilizarlo en tu máquina personal como para desplegar sus capacidades en una red local o a través de Internet.
Si te ha surgido alguna duda, pregunta o sugerencia, quieres notificar algún error, etc. puedes dejar un comentario que, aunque se moderan para tratar de evitar el SPAM, se revisan prácticamente a diario.
Y si gracias a nuestra guía ya puedes trabajar con Moodle y quieres agradecérnoslo, siempre es bien recibida cualquier mínima aportación al mantenimiento de este sitio y la creación de más guías y tutoriales.
Puedes ayudarnos dejando una propina de tan sólo 1 $ a través de PayPal:
¡Gracias!
Actualizado a la versión 4.4+
Actualizado a la versión 4.3.3+
Hola, hermano, muchas gracias por tus aportes, siempre han sido de gran ayuda. En la parte del cron me aparece el siguiente error: «El script admin/cli/cron.php nunca se ha ejecutado y debería ejecutarse cada 1 minutos«. Y coloqué el script del cron tal cual como lo explicaste. ¿Sabes qué podría hacer? ¡Nuevamente GRACIAS!
Hola, Eter. Revisa el archivo /var/log/auth.log, ya que cada minuto añadirá una línea relacionada con el resultado de ejecutar el script mediante cron. Lo normal sería obtener algo así:
Apr 20 17:53:02 debian11 CRON[4679]: pam_unix(cron:session): session closed for user www-data
De todas formas he actualizado el tutorial a la última versión disponible y todo funciona como se espera.
Actualizado a la versión 4.0+.
Actualizado a la versión 3.11.5+.
Actualizado a la versión 3.11.4+.