Guía Completa para Instalación y Configuración de Moodle

Todo lo que necesitas para montar tu plataforma de aprendizaje online paso a paso

1. Introducción a Moodle

Moodle es una plataforma de aprendizaje en línea (LMS) de código abierto muy popular usada por universidades, escuelas y empresas para crear cursos virtuales y gestionar la formación online. Su instalación y configuración inicial puede parecer compleja, pero esta guía te ayudará a entender cada paso para que puedas tener Moodle funcionando en poco tiempo.

2. Requisitos del Sistema para Moodle

2.1 Requisitos mínimos

2.2 Recomendaciones para producción

3. Preparación del Entorno

Antes de instalar Moodle, necesitas preparar tu servidor:

3.1 Instalar servidor web, PHP y base de datos

Ejemplo para Ubuntu (LAMP stack):

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

Luego habilita y arranca los servicios:

sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl enable mysql
sudo systemctl start mysql
    

3.2 Crear la base de datos para Moodle

Entra en la consola MySQL:

sudo mysql -u root -p

Luego ejecuta los siguientes comandos para crear la base de datos y el usuario:

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'TuContraseñaSegura';
GRANT ALL PRIVILEGES ON moodle.* TO 'moodleuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
    

4. Descarga e Instalación de Moodle

4.1 Descargar Moodle

Visita la página oficial para descargar la última versión estable:

https://download.moodle.org/

O usa wget para descargar directamente al servidor:

wget https://download.moodle.org/latest.zip

4.2 Descomprimir Moodle

unzip latest.zip -d /var/www/html/

Esto extraerá la carpeta moodle en el directorio público del servidor web.

4.3 Crear carpeta moodledata

Moodle requiere una carpeta para datos fuera del acceso público. Se recomienda crearla fuera de /var/www/html/, por ejemplo:

sudo mkdir /var/moodledata
sudo chown -R www-data:www-data /var/moodledata
sudo chmod 770 /var/moodledata
    

Reemplaza www-data por el usuario con que corre tu servidor web (apache o nginx).

5. Configuración Inicial a través del Instalador Web

Abre el navegador y entra en:

http://tu-ip-o-dominio/moodle

Verás un asistente de instalación. Sigue estos pasos:

  1. Selecciona el idioma de la instalación.
  2. Revisa que tu servidor cumpla con los requisitos de PHP y extensiones.
  3. Introduce la ruta del directorio de datos (por ejemplo, /var/moodledata).
  4. Introduce los datos de la base de datos creados en el paso 3:
    • Tipo: MySQL/MariaDB
    • Servidor: localhost
    • Nombre de la base de datos: moodle
    • Usuario: moodleuser
    • Contraseña: la que definiste
  5. El instalador verificará la conexión y creará las tablas necesarias.
  6. Configura el sitio: nombre, descripción, cuenta de administrador (usuario y contraseña), correo, etc.

6. Configuración Avanzada Post-Instalación

6.1 Configurar tareas programadas (cron)

Moodle necesita ejecutar tareas periódicas. Configura el cron así:

# Edita crontab para el usuario www-data o el usuario del servidor web
sudo crontab -u www-data -e

# Añade esta línea para que se ejecute cada minuto
* * * * * /usr/bin/php /var/www/html/moodle/admin/cli/cron.php >/dev/null 2>&1
    

6.2 Configurar HTTPS

Para seguridad, activa HTTPS usando Let's Encrypt o un certificado SSL válido.

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d tudominio.com
    

6.3 Ajustar parámetros en config.php

El archivo config.php en la raíz de Moodle contiene configuraciones clave. Ejemplo:

$CFG->wwwroot   = 'https://tudominio.com/moodle';
$CFG->dataroot  = '/var/moodledata';
$CFG->dbtype    = 'mysqli';
$CFG->dbname    = 'moodle';
$CFG->dbuser    = 'moodleuser';
$CFG->dbpass    = 'TuContraseñaSegura';
$CFG->dbhost    = 'localhost';
$CFG->prefix    = 'mdl_';
    

7. Seguridad y Mantenimiento

8. Recursos Útiles