Cómo instalar Moodle LMS en un servidor Ubuntu 24.04

Moodle es una popular plataforma de código abierto utilizada por instituciones educativas de todo el mundo para crear cursos en línea, gestionar contenidos y facilitar el aprendizaje colaborativo. Ejecutar Moodle en Ubuntu es una opción habitual debido a la estabilidad, seguridad y compatibilidad de Ubuntu con una amplia gama de paquetes de software. El proceso implica instalar los componentes necesarios, como Apache o Nginx como servidor web, MySQL o PostgreSQL como base de datos, y PHP como lenguaje de programación, todos ellos bien soportados en Ubuntu. Esta configuración permite a las instituciones crear un entorno de aprendizaje en línea robusto, escalable y personalizable que puede adaptarse a necesidades educativas específicas.

En este tutorial, te mostraremos cómo instalar Moodle en el servidor Ubuntu 24.04. Instalarás Moodle con la pila LAMP, y luego asegurarás Moodle con UFW y HTTPS mediante Certbot y Letsencrypt.

Requisitos previos

Antes de empezar, asegúrate de que tienes lo siguiente:

  • Un servidor Ubuntu 24.04.
  • Un usuario no root con privilegios de administrador.
  • Un nombre de dominio apuntando a una dirección IP del servidor.
  • Un cortafuegos UFW en funcionamiento.

Instalar dependencias

Moodle es una plataforma de aprendizaje de código abierto escrita en PHP. Para instalar Moodle, necesitas Apache/Nginx, MySQL/MariaDB/PostgreSQL y PHP. En esta sección, instalarás la pila LAMP (Linux, Apache, MariaDB y PHP) en Ubuntu e instalarás Moodle sobre ella.

Para empezar, ejecuta el siguiente comando y actualiza el índice de paquetes de Ubuntu.

sudo apt update

actualizar repo

Ahora ejecuta el siguiente comando para instalar las dependencias de la Pila LAMP (Apache, MariaDB y PHP). Introduce ‘Y’ para confirmar 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 la pila de lámparas

Una vez completada la instalación, comprueba el estado del servicio Apache con el comando que aparece a continuación.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

A continuación, puedes ver que el servidor web Apache se está ejecutando.

comprobar apache2

Comprueba el servidor de base de datos MariaDB con el siguiente comando. Verás que el servidor MariaDB se está ejecutando.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

comprobar mariadb

Por último, comprueba la versión de PHP y las extensiones habilitadas con lo siguiente:

php -v
php -m

Verás que PHP 8.3 está instalado en tu servidor Ubuntu.

comprobar php

Configurar el servidor MariaDB

Una vez instaladas las dependencias, tienes que cambiar el motor de almacenamiento MariaDB por defecto a«InnoDB«, que es el que necesita Moodle. Esto puede hacerse editando la configuración del servidor MariaDB. Y luego, también asegurarás la instalación del servidor MariaDB utilizando la utilidad‘mariadb_secure_installation’.

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

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

Añade la siguiente configuración en la sección ‘[mysqld]‘. Esto cambiará el motor de almacenamiento por defecto 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 siguiente comando‘systemctl’ para reiniciar el servidor MariaDB y aplicar tus cambios.

sudo systemctl restart mariadb

Por último, ejecuta el comando«mariadb_secure_installation» para configurar el usuario raíz de MariaDB y proteger tu instalación.

sudo mariadb_secure_installation

Durante el proceso, se te preguntará lo siguiente:

  • Para la instalación por defecto del servidor MariaDB sin contraseña de root, pulsa ENTER cuando se te pregunte por la contraseña.
  • La autenticación local para los usuarios raíz de MariaDB está asegurada por defecto, introduce ‘n’ cuando se te pregunte si quieres cambiar el método de autenticación a ‘unix_socket’.
  • Introduce «Y» para crear una nueva contraseña de root de MariaDB. A continuación, introduce la contraseña segura de tu usuario raíz de MariaDB y repite la operación.
  • Cuando se te pida que desactives la autenticación remota para el usuario raíz de MariaDB, introduce «Y» para aceptar.
  • La instalación por defecto del servidor MariaDB viene con la base de datos «test» y permite que un usuario anónimo acceda a ella. Introduce «Y» en ambas opciones para eliminar la base de datos «test» por defecto y el privilegio anónimo.
  • Por último, introduce «Y» para confirmar los privilegios de recarga de tablas.

Crear base de datos y usuario

Ahora que ya has configurado el servidor MariaDB, vamos a crear una nueva base de datos y un nuevo usuario mediante el cliente ‘mariadb’.

Accede al servidor MariaDB con el comando cliente‘mariadb‘ que se indica a continuación. Introduce tu contraseña de root de MariaDB cuando se te solicite.

sudo mariadb -u root -p

Ahora ejecuta las siguientes consultas para crear una nueva base de datos‘moodle‘, un usuario‘moodle‘, y asegúrate de cambiar la contraseña 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;
QUIT

crear base de datos

Configurar PHP

En esta sección, editarás la configuración PHP ‘php.ini’ y cambiarás algunos valores por defecto que requiere Moodle.

Abre la configuración PHP ‘/etc/php/8.3/apache2/php.ini‘ con el editor‘nano‘.

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

Cambia la configuración por defecto por la siguiente. Asegúrate de ajustar las opciones‘memory_limit‘ y‘date_timezone’ con tu información.

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

Cuando hayas terminado, guarda el archivo y sal.

Por último, ejecuta el siguiente comando para reiniciar el servidor web Apache y aplicar tus cambios a PHP.

sudo systemctl restart apache2

Descargar el código fuente de Moodle

Llegados a este punto, ya has instalado y configurado la Pila LAMP. Vamos a descargar el código fuente de Moodle y a configurar el directorio de instalación de Moodle.

Ve al directorio‘/var/www‘ y descarga el código fuente de Moodle utilizando el comando‘wget‘. Asegúrate de visitar la página de descargas de Moodle para obtener el enlace de la última versión. En este caso, descargarás la última versión estable de Moodle 40.4.

cd /var/www
wget https://download.moodle.org/download.php/direct/stable404/moodle-latest-404.tgz

Una vez descargado Moodle, extráelo con el siguiente comando‘tar‘. El código fuente de Moodle estará disponible en el directorio‘/var/www/moodle’.

tar xvf moodle-latest-404.tgz

Por último, ejecuta el siguiente comando para crear un nuevo directorio de datos ‘/var/www/moodledata‘, cambia la propiedad del directorio Moodle al usuario‘www-data‘, y asegúrate de que tanto Moodle como el directorio de datos son escribibles por el usuario‘www-data‘.

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

Configurar el host virtual Apache

Una vez descargado Moodle, tendrás que crear un nuevo archivo de host virtual Apache para ejecutar Moodle. Así que asegúrate de que tienes tu dominio listo y resuelto a la dirección IP de tu servidor Ubuntu.

Primero, ejecuta el comando‘a2enmod‘ que aparece a continuación para activar el módulo‘rewrite’.

sudo a2enmod rewrite

Crea un nuevo archivo de host virtual Apache‘/etc/apache2/sites-available/moodle.conf‘ con el siguiente editor‘nano‘.

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

Introduce la siguiente configuración y asegúrate de cambiar el nombre de dominio con tus datos.

<VirtualHost *:80>
 DocumentRoot /var/www/moodle/
 ServerName moodle.howtoforge.local
 ServerAdmin [email protected]

<Directory /var/www/moodle/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>

ErrorLog /var/log/apache2/moodle_error.log
CustomLog /var/log/apache2/moodle_access.log combined
</VirtualHost>

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el siguiente comando para habilitar el archivo‘moodle.conf‘ y verifica tu sintaxis de Apache. Si tienes la sintaxis correcta de Apache, verás una salida‘La sintaxis es correcta‘.

sudo a2ensite moodle.conf
sudo apachectl configtest

Por último, ejecuta el siguiente comando‘systemctl’ para reiniciar Apache y aplicar tus cambios.

sudo systemctl restart apache2

Asegurar Moodle con UFW

En este paso, abrirás los protocolos HTTP y HTTPS a través de UFW (Uncomplicated Firewall). Asegúrate de que tienes UFW en ejecución antes de empezar.

Ejecuta el siguiente comando para activar el perfil«Apache completo» en UFW. Con esto, se permitirá el tráfico HTTP y HTTPS.

sudo ufw allow 'Apache Full'

Ahora comprueba la lista de reglas habilitadas en UFW con lo siguiente. Verás que el perfil«Apache Full» está habilitado.

sudo ufw status

Asegurar Moodle con HTTPS

Además del cortafuegos, también generarás certificados SSL/TLS y asegurarás Moodle con HTTPS. En esta sección, implementarás HTTPS para Moodle a través de Certbot y Letsencrypt. Si estás instalando Moodle localmente, sáltate esto.

Instala los paquetes‘certbot‘ y‘python3-certbot-apache‘ con el siguiente comando.

sudo apt install certbot python3-certbot-apache -y

Una vez completada la instalación, ejecuta el siguiente comando‘certbot‘ para generar certificados SSL/TLS para Moodle. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico con tu información.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d moodle.howtoforge.local

Cuando finalice el proceso, tus certificados SSL estarán disponibles en el directorio‘/etc/letsencrypt/live/domain.com‘, y tu instalación de Moodle debería estar protegida automáticamente con HTTPS.

Instalar Moodle

Visita tu dominio Moodle, por ejemplo https://moodle.howtoforge.local/, y verás el asistente de instalación.

Selecciona tu idioma por defecto y haz clic en Siguiente.

idioma

Introduce tu directorio de datos para Moodle‘/var/www/moodledata‘.

datos de moodle

Selecciona MariaDB como controlador de la base de datos.

controlador db

Introduce los detalles de tu base de datos MariaDB y el usuario.

base de datos

Haz clic en Continuar para confirmar el aviso de copyright.

avisos de copyright

En la sección de comprobaciones del servidor, asegúrate de que tu entorno está listo.

comprobaciones del sistema

Ahora se procesará la instalación de Moodle.

instalación

Una vez completada la instalación, introduce el nuevo usuario administrador, el correo electrónico y la contraseña para Moodle.

configuración administrativa

Ahora verás el panel de control de Moodle como el siguiente:

tablero moodle

Conclusión

¡Enhorabuena! Has completado la instalación de Moodle en el servidor Ubuntu 24.04. Has instalado Moodle 40.4 en Ubuntu con la pila LAMP (Linux, Apache, MariaDB y PHP), y has asegurado Moodle con UFW (Uncomplicated Firewall) y HTTPS mediante Certbot y Letsencrypt.

También te podría gustar...