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
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
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.
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
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.
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
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.
Introduce tu directorio de datos para Moodle‘/var/www/moodledata‘.
Selecciona MariaDB como controlador de la base de datos.
Introduce los detalles de tu base de datos MariaDB y el usuario.
Haz clic en Continuar para confirmar el aviso de copyright.
En la sección de comprobaciones del servidor, asegúrate de que tu entorno está listo.
Ahora se procesará la instalación de Moodle.
Una vez completada la instalación, introduce el nuevo usuario administrador, el correo electrónico y la contraseña para Moodle.
Ahora verás el panel de control de Moodle como el siguiente:
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.