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
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
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 apache2Puedes ver a continuación que el servidor web Apache está en funcionamiento y habilitado.

Ahora verifica el servicio ‘mariadb’ ejecutando el siguiente comando.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbEn la salida a continuación, puedes ver que el servidor MariaDB está en funcionamiento.

Por último, verifica la versión de PHP y lista los módulos habilitados usando el siguiente comando.
php -v
php -mVerás que PHP 8.2 está instalado con algunos módulos predeterminados como ‘curl’, ‘exif’ y ‘date’ habilitados.

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
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/tcpAhora 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 enablePor ú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
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.cnfInserta 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 = 1Guarda 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 mariadbDespués de eso, ejecuta el comando ‘mariadb-secure-installation’ a continuación para asegurar tu instalación del servidor MariaDB.
sudo mariadb-secure-installationCon 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 -pEjecuta 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;
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.

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.iniCambia 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 = 5000Cuando 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 apache2Descargando 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.tgzUna 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.tgzA 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/moodledataPor ú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
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.confInserta 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.confA 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
Por último, ejecuta el comando ‘systemctl’ a continuación para reiniciar el servidor web Apache y aplicar tus cambios.
sudo systemctl restart apache2Asegurando 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-apacheDespué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.localCuando 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 ‘.

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

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

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

Haz clic en ‘ Continuar ‘ en el aviso de 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 ‘.

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

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

Ahora ingresa la información de tu sitio Moodle.

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

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.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.