Instalación Moodle · 9 min read · Sep 08, 2025

Cómo instalar Moodle LMS en un servidor Debian 12

Moodle es una solución abierta para el Sistema de Gestión de Aprendizaje (LMS). Es una plataforma con fines educativos, desde la creación de cursos en línea, la gestión de escuelas en línea, la gestión de contenido y la oferta de aprendizaje colaborativo. Moodle está escrito principalmente en PHP con MySQL/MariaDB como base de datos y puede ejecutarse en cualquier sistema operativo. Puedes elegir entre Apache o Nginx para tu instalación de Moodle.

En esta guía, aprenderás a instalar el Sistema de Gestión de Aprendizaje Moodle en un servidor Debian 12. Ejecutarás Moodle con el LAMP Stack (Linux, Apache, MariaDB y PHP), asegurarás tu servidor Debian con UFW (Firewall poco complicado) y luego asegurarás Moodle con HTTP a través de Certbot y Letsencrypt.

Requisitos previos

Asegúrate de tener lo siguiente antes de comenzar:

  • Un servidor Debian 12
  • Un usuario no root con privilegios de administrador
  • Un nombre de dominio apuntado a la dirección IP del servidor

Instalando dependencias

El LMS de Moodle está escrito en PHP y MySQL, por lo que debes instalar esos paquetes en tu sistema. En este ejemplo, ejecutarás Moodle con el LAMP Stack (Linux, Apache, MariaDB y PHP). Así que por ahora, instalarás LAMP en tu servidor Debian.

Antes de instalar cualquier paquete, ejecuta el siguiente comando para actualizar tu índice de paquetes de Debian.

sudo apt update

actualizar repositorio

Ahora instala las dependencias del LAMP Stack (Linux, Apache, MariaDB y PHP) con el siguiente comando. Ingresa ‘Y’ para proceder con la instalación.

sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php

instalar lamp

Después de que la instalación esté completa, verifica el servicio ‘apache2’ para asegurarte de que el servicio esté en funcionamiento.

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

Puedes ver a continuación que el servidor web Apache está en funcionamiento y habilitado.

verificar apache2

Ahora verifica el servicio ‘mariadb’ ejecutando el siguiente comando.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

En la salida a continuación, puedes ver que el servidor MariaDB está en funcionamiento.

verificar mariadb

Por último, verifica la versión de PHP y lista los módulos habilitados usando el siguiente comando.

php -v  
php -m

Verás que PHP 8.2 está instalado con algunos módulos predeterminados como ‘curl’, ‘exif’ y ‘date’ habilitados.

verificar php

Instalando UFW (Firewall poco complicado)

Después de haber instalado el LAMP Stack, instalemos UFW (Firewall poco complicado) para asegurar el servidor. Y luego, abre puertos para los protocolos SSH, HTTP y HTTPS. Por último, iniciemos y habilitemos UFW.

Para instalar UFW, ejecuta el comando ‘apt’ a continuación.

sudo apt install ufw

instalar ufw

Una vez que UFW esté instalado, ejecuta el comando ‘ufw’ a continuación para abrir puertos para OpenSSH, HTTP (80) y HTTPS (443). Verás una salida como ‘Reglas actualizadas’.

sudo ufw allow OpenSSH  
sudo ufw allow 80/tcp  
sudo ufw allow 443/tcp

Ahora ejecuta el comando a continuación para iniciar y habilitar UFW en tu máquina Debian. Cuando se te pida, ingresa ‘y’ para confirmar y proceder. Verás una salida ‘El firewall está activo y habilitado al inicio del sistema’.

sudo ufw enable

Por último, verifica el estado de UFW con el comando a continuación. Verás que UFW está ‘activo’ con OpenSSH, y los puertos ‘80’ y ‘443’ están ‘ PERMITIDOS ‘.

sudo ufw status

verificar estado

Configurando el servidor MariaDB

Antes de instalar Moodle, necesitas cambiar el motor de almacenamiento predeterminado a ‘innodb’ y configurar ‘Barracuda’ como el formato predeterminado. Después de eso, también necesitas asegurar el servidor MariaDB y configurar la contraseña de ‘root’ usando la utilidad ‘mariadb-secure-installation’.

Abre la configuración predeterminada del servidor MariaDB ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ con el editor ‘nano’.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Inserta la configuración a continuación para habilitar el formato ‘Barracuda’ y configurar el motor de almacenamiento predeterminado a ‘InnoDB’.

innodb_file_format = Barracuda   
default_storage_engine = innodb  
innodb_large_prefix = 1  
innodb_file_per_table = 1

Guarda el archivo y sal del editor.

Ahora ejecuta el comando ‘systemctl’ a continuación para reiniciar el servidor MariaDB y aplicar tus cambios.

sudo systemctl restart mariadb

Después de eso, ejecuta el comando ‘mariadb-secure-installation’ a continuación para asegurar tu instalación del servidor MariaDB.

sudo mariadb-secure-installation

Con esto, se te preguntará sobre las configuraciones del servidor MariaDB:

  • Presiona ENTER cuando se te pregunte sobre la contraseña de root (la configurarás más tarde)
  • Ingresa ‘n’ cuando se te pida cambiar a la autenticación ‘unix_socket’
  • Ingresa ‘Y’ para configurar la contraseña de root de MariaDB, luego escribe tu nueva contraseña y repite
  • Ingresa ‘Y’ para eliminar el usuario anónimo de MariaDB
  • Ingresa ‘Y’ nuevamente para deshabilitar el inicio de sesión remoto para el usuario root
  • Ingresa ‘Y’ para eliminar la base de datos predeterminada ‘test’ y sus privilegios
  • Ingresa ‘Y’ para recargar los privilegios de la tabla y aplicar tus cambios

Una vez terminado, ve al siguiente paso para crear una nueva base de datos y usuario.

Creando una base de datos y usuario para Moodle

Con el servidor MariaDB configurado, ahora vamos a crear una nueva base de datos y un usuario que serán utilizados por Moodle. Utilizarás el cliente ‘mariadb’ para iniciar sesión en MariaDB y crear una nueva base de datos y usuario.

Inicia sesión en el servidor MariaDB con el comando ‘mariadb’ a continuación. Ingresa tu contraseña de root de MariaDB cuando se te pida.

sudo mariadb -u root -p

Ejecuta las siguientes consultas para crear una nueva base de datos y usuario ‘moodle’ con la contraseña ‘MoodlePassw0rd’. Asegúrate de cambiar las siguientes credenciales de base de datos con tu información.

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";  
FLUSH PRIVILEGES;

crear base de datos y usuario

Ahora ejecuta la consulta a continuación para verificar el usuario ‘moodle’. Asegúrate de que el usuario ‘moodle’ pueda acceder a la base de datos ‘moodle’.

SHOW GRANTS FOR moodle@localhost;

Por último, escribe ‘QUIT’ para salir del servidor MariaDB.

mostrar privilegios de base de datos

Configurando PHP

Ahora que has configurado el servidor MariaDB y creado un nuevo usuario de base de datos, configuremos el archivo ‘php.ini’ y cambiemos algunas configuraciones predeterminadas según lo necesite Moodle.

Abre el archivo ‘php.ini’ con el editor ‘nano’.

sudo nano /etc/php/8.2/apache2/php.ini

Cambia la configuración predeterminada de PHP con lo siguiente. Puedes cambiar el ‘memory_limit’ según sea necesario, dependiendo de la memoria de tu servidor.

memory_limit = 256M  
upload_max_filesize = 60M  
max_execution_time = 300  
date.timezone = Europe/Amsterdam  
max_input_vars = 5000

Cuando termines, guarda el archivo y sal del editor.

Por último, ejecuta el comando ‘systemctl’ a continuación para reiniciar el servidor web ‘apache2’ y aplicar tu nueva configuración de PHP.

sudo systemctl restart apache2

Descargando el código fuente de Moodle

Después de configurar PHP, estás listo para descargar el código fuente de Moodle, luego configurar el directorio de instalación y el directorio ‘data’ para Moodle. En este ejemplo, configurarás el directorio de instalación de Moodle en ‘/var/www/moodle’ y el directorio ‘data’ en ‘/var/www/moodledata’.

Ve al directorio ‘/var/www’ y descarga el código fuente de Moodle con el comando ‘wget’ a continuación.

cd /var/www  
sudo wget https://download.moodle.org/download.php/direct/stable405/moodle-latest-405.tgz

Una vez descargado, ejecuta el comando ‘tar’ a continuación para extraer el código fuente de Moodle y renombrar el directorio extraído a ‘moodle’. Con esto, tu instalación de Moodle estará ubicada en el directorio ‘/var/www/moodle’.

tar -xf moodle-latest-405.tgz

A continuación, crea un nuevo directorio ‘/var/www/moodledata’ que se utilizará como el directorio de datos para tu instalación de Moodle.

mkdir -p /var/www/moodledata

Por último, ejecuta el comando a continuación para cambiar la propiedad de los directorios ‘/var/www/moodle’ y ‘/var/www/moodledata’ al usuario ‘www-data’. Y luego, asegúrate de que el usuario ‘www-data’ pueda leer, escribir y ejecutar archivos dentro de esos directorios.

sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata  
sudo chmod u+rwx /var/www/moodle /var/www/moodledata

configurar directorio moodle

Configurando el host virtual de Apache

Ahora que has descargado Moodle, el siguiente paso es crear un nuevo archivo de host virtual de Apache para Moodle. Así que asegúrate de que tienes un nombre de dominio resuelto/apuntado a la dirección IP del servidor.

Crea una nueva configuración de host virtual ‘/etc/apache2/sites-available/moodle.conf’ con el editor ‘nano’.

sudo nano /etc/apache2/sites-available/moodle.conf

Inserta la configuración a continuación para configurar un archivo de host virtual para Moodle. Asegúrate de cambiar el parámetro ‘ServerName’ con tu nombre de dominio.

  
DocumentRoot /var/www/moodle/  
ServerName moodle.howtoforge.local  
ServerAdmin [email protected]  
  
  
Options +FollowSymlinks  
AllowOverride All  
Require all granted  
  
  
ErrorLog /var/log/apache2/moodle_error.log  
CustomLog /var/log/apache2/moodle_access.log combined  

Guarda el archivo y sal del editor cuando termines.

Ahora ejecuta el comando ‘a2enmod’ a continuación para activar el módulo ‘rewrite’, y luego ejecuta el comando ‘a2ensite’ a continuación para activar el host virtual ‘moodle.conf’.

sudo a2enmod rewrite  
sudo a2ensite moodle.conf

A continuación, ejecuta el comando ‘apachectl’ a continuación para verificar tu configuración de Apache. Si tienes una configuración de Apache adecuada, verás una salida como ‘La sintaxis es correcta’.

sudo apachectl configtest

configurar apache

Por último, ejecuta el comando ‘systemctl’ a continuación para reiniciar el servidor web Apache y aplicar tus cambios.

sudo systemctl restart apache2

Asegurando Moodle con HTTPS

En este punto, tu instalación de Moodle está lista. Antes de continuar, asegurarás Moodle con HTTPS a través de Certbot y Letsencrypt. Haz esto cuando estés instalando Moodle en un servidor público. Si estás en el desarrollo local, puedes omitir o implementar HTTPS a través de certificados autofirmados.

Instala el ‘certbot’ y el plugin ‘python3-certbot-apache’ con el siguiente comando ‘apt’. Ingresa ‘Y’ para confirmar la instalación.

sudo apt install certbot python3-certbot-apache

Después de que la instalación esté completa, ejecuta el siguiente comando ‘certbot’ para generar certificados SSL para Moodle. Asegúrate de cambiar el siguiente nombre de dominio y dirección de correo electrónico con tu dominio.

sudo certbot --apache --agree-tos --no-eff-email -m [email protected] -d moodle.howtoforge.local

Cuando termines, tus certificados SSL estarán disponibles en el directorio ‘/etc/letsencrypt/live/domain.com’ y tu instalación de Moodle estará funcionando bajo HTTPS.

Instalación de Moodle

Abre tu navegador web y visita el nombre de dominio de tu instalación de Moodle como https://moodle.howtoforge.local/, y verás el asistente de instalación de Moodle.

Selecciona tu idioma predeterminado para Moodle y haz clic en ‘ Siguiente ‘.

seleccionar idioma

Ingresa tu nombre de dominio y el directorio de datos de Moodle a ‘ /var/www/moodledata ‘.

seleccionar dominio y directorio de datos

Selecciona ‘ MariaDB ‘ como la base de datos predeterminada para Moodle.

controlador de base de datos mariadb

Ingresa los detalles de tu base de datos MariaDB como dbname, dbuser y contraseña.

configuración de mariadb

Haz clic en ‘ Continuar ‘ en el aviso de derechos de autor.

derechos de autor

Dentro de la sección ‘Verificaciones del servidor’, asegúrate de que tu servidor Debian cumpla con los requisitos de Moodle. El estado de cada elemento debe ser ‘ OK ‘.

verificaciones del sistema

Ahora verás la instalación de Moodle como la siguiente:

instalación de moodle

Una vez que la instalación esté completa, ingresa tus detalles de administrador (nombre de usuario, correo electrónico y contraseña).

usuario administrador

Ahora ingresa la información de tu sitio Moodle.

información del sitio moodle

Por último, verás el siguiente panel de administración de Moodle.

panel de control

Conclusión

¡Felicidades! Has completado la instalación del Sistema de Gestión de Aprendizaje Moodle (LMS) en el servidor Debian 12. Has puesto Moodle en funcionamiento con el LAMP Stack (Linux, Apache, MariaDB y PHP) y asegurado con UFW (Firewall poco complicado) y HTTPS a través de Certbot y Letsencrypt. A partir de aquí, puedes aplicar un nuevo tema para Moodle, instalar nuevos complementos para extender la funcionalidad, o puedes aprender la Guía del Usuario de Moodle para gestionar tu instalación de Moodle.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.