Cómo instalar la plataforma de aprendizaje Moodle en Ubuntu 20.04


Moodle es la plataforma de gestión de aprendizaje en línea (e-learning) de código abierto más popular, sólida, gratuita y del mundo creada para la web y el móvil. Ofrece una amplia gama de actividades y herramientas educativas que permiten a las escuelas, universidades e instituciones relacionadas ofrecer a los estudiantes una plataforma de aprendizaje flexible en cualquier momento y lugar, sin interrumpir su curso y plan de estudios.

Algunas de sus características generales incluyen una interfaz moderna y fácil de usar, tablero personalizado, herramientas y actividades colaborativas, calendario todo en uno, administración conveniente de archivos, editor de texto simple e intuitivo, notificaciones y seguimiento del progreso.

Es importante destacar que Moodle también es altamente extensible utilizando más de mil complementos que admiten actividades, bloques, temas adicionales y mucho más.

En este artículo, aprenderá a instalar la última versión de la plataforma de aprendizaje Moodle con la base de datos NGINX y MySQL/MariaDB en Ubuntu 20.04 y versiones anteriores.

  • Una pila LEMP recién instalada instalada.

Una vez que haya instalado la pila LEMP en el servidor de Ubuntu, puede continuar para configurar Moodle en el servidor como se explica a continuación.

En esta página

  • Configuración del registro DNS para la aplicación Moodle
  • Instalación de Moodle en Ubuntu Server
  • Configuración de NGINX para servir la aplicación Moodle
  • Completar la instalación de Moodle a través del instalador web
  • Habilite HTTPS en la aplicación Moodle usando Let's Encrypt

1. Para que los usuarios accedan a su instancia de Moodle, debe crear un subdominio para ella, por lo tanto, debe crear un registro DNS A para lograr esto. Para esta guía, nuestro dominio de prueba es testprojects.me , por lo que necesitamos crear un subdominio, por ejemplo, learning.testprojects.me .

Por lo tanto, inicie sesión en la consola web de su registrador de dominios y acceda a la configuración avanzada de su dominio, haga clic en Agregar nuevo registro de tipo A , un host debe estar aprendiendo (o cualquier palabra de su elección ), y el valor debe ser la dirección IP pública de su servidor Ubuntu.

2. A continuación, debe instalar las extensiones y bibliotecas PHP requeridas por Moodle usando el administrador de paquetes apt como se muestra.

$ sudo apt update
$ sudo apt install php-common php-iconv php-curl php-mbstring php-xmlrpc php-soap php-zip php-gd php-xml php-intl php-json libpcre3 libpcre3-dev graphviz aspell ghostscript clamav

3. A continuación, cree una base de datos para su sistema Moodle. Inicie sesión en el shell de administración de la base de datos MySQL y cree la base de datos como se muestra:

$ sudo mysql

MariaDB [(none)]> CREATE DATABASE moodle;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleadmin'@'localhost' IDENTIFIED BY '[email protected]';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;

4. Como se mencionó anteriormente, para esta guía, descargaremos e instalaremos la última versión de Moodle (versión 3.9 en el momento de escribir este artículo). Ejecute el siguiente comando ls para confirmar que el directorio moodle existe en/var/www/html/como se muestra.

$ wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
$ sudo tar -zvxf moodle-latest-39.tgz -C /var/www/html/
$ ls /var/www/html/

5. A continuación, configure los permisos adecuados en el directorio de Moodle ejecutando los siguientes comandos.

$ sudo chown www-data:www-data -R /var/www/html/moodle
$ sudo chmod 775 -R /var/www/html/moodle

6. A continuación, cree el directorio de datos de Moodle, un lugar donde Moodle puede guardar los archivos cargados y establecer sus permisos como se muestra.

$ sudo mkdir -p /var/moodledata
$ sudo chmod 775 -R /var/moodledata
$ sudo chown www-data:www-data -R  /var/moodledata

7. Luego cree el archivo de configuración principal de Moodle desde el archivo de configuración de muestra provisto con el paquete, ábralo.

$ cd /var/www/html/moodle/
$ sudo cp config-dist.php config.php
$ sudo vim config.php

Busque la sección de configuración de la base de datos, luego configure la base de datos donde se almacenarán todos los datos de Moodle, como se muestra en la siguiente captura de pantalla:

$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dblibrary = 'native';     // 'native' only at the moment
$CFG->dbhost    = 'localhost';  // eg 'localhost' or 'db.isp.com' or IP
$CFG->dbname    = 'moodle';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = '[email protected]';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

Además, configure la ubicación del sitio web de Moodle así como la ubicación del directorio de datos de Moodle como se muestra.

$CFG->wwwroot   = 'http://learning.testprojects.me';
$CFG->dataroot  = '/var/moodledata';

Guarde el cierre del archivo. Luego configure NGINX para que sirva a su sitio Moodle como se describe en la siguiente sección.

8. Para que NGINX sirva a su sitio Moodle, necesita crear una nueva configuración de bloque de servidor bajo la configuración de NGINX, en el directorio /etc/nginx/conf.d/.

$ sudo vim /etc/nginx/conf.d/moodle.conf

Copie y pegue la siguiente configuración, reemplace learning.testprojects.me con su subdominio. Además, la directiva fastcgi_pass debe apuntar a la dirección en la que PHP-FPM acepta solicitudes FastCGI (consulte el archivo /etc/php/7.4/fpm/pool.d/www.conf para obtener más información) .

server{
   listen 80;
    server_name learning.testprojects.me;
    root        /var/www/html/moodle;
    index       index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass           unix:/run/php/php7.4-fpm.sock;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Guarde el archivo y ciérrelo.

9. A continuación, verifique que la configuración de NGINX sea correcta después de realizar los cambios anteriores, luego reinicie correctamente el servicio NGINX.

$ sudo nginx -t
$ sudo systemctl reload nginx

10. Ahora abra un navegador web y navegue usando su subdominio, por ejemplo, learning.testprojects.me para acceder al instalador web de Moodle.

http://learning.testprojects.me

Una vez que se cargue la página de bienvenida, lea el mensaje y haga clic en Continuar.

11. A continuación, el instalador comprobará si su sistema cumple con los requisitos, si todo está bien, desplácese hacia abajo y haga clic en Continuar para iniciar la instalación real de los archivos y configurar el esquema de la base de datos.

Tenga en cuenta que el instalador mostrará una advertencia sobre el sitio que no se ejecuta en HTTPS, ignore la advertencia por ahora. En la última sección, cubriremos cómo habilitar HTTPS en Moodle usando certificados gratuitos de Let's Encrypt.

Una vez que se complete la instalación, haga clic en Continuar.

12. A continuación, configure la cuenta de administrador de su sitio Moodle creando el nombre de usuario, la contraseña, el nombre y apellido y la dirección de correo electrónico de la cuenta. Luego, desplácese hacia abajo y haga clic en Actualizar cuenta.

13. A continuación, configure los ajustes de la página principal del sitio Moodle como se muestra en la siguiente captura de pantalla. Luego, desplácese hacia abajo y haga clic en Actualizar.

14. El instalador web lo iniciará automáticamente en el nuevo sitio de Moodle. Puede completar el registro de su sitio siguiendo las instrucciones en pantalla.

15. Para proteger su sitio Moodle, debe habilitar HTTPS. Para esta guía, usaremos los certificados SSL/TLS gratuitos y confiables de Let's Encrypt. Otra ventaja de usar Let’s Encrypt es que está automatizado.

Por lo tanto, regrese a su terminal y ejecute el siguiente comando para instalar el certbot en Ubuntu (una herramienta gratuita de código abierto para usar automáticamente los certificados Let's Encrypt para habilitar HTTPS en sitios administrados manualmente).

$ sudo snap install --classic certbot

16. Luego, emita el siguiente comando para obtener un certificado y haga que Certbot edite su configuración de NGINX para configurar automáticamente el nuevo certificado.

$ sudo certbot --nginx

17. Luego, regrese al archivo de configuración del sitio Moodle.

$ sudo vim /var/www/html/moodle/config.php 

y cambie la URL de HTTP a HTTPS como se muestra en la siguiente captura de pantalla.

$CFG->wwwroot   = 'https://learning.testprojects.me';

18. Finalmente, verifique desde el navegador que su sitio Moodle ahora se está ejecutando en HTTPS.

https://learning.testprojects.me

¡Eso es todo por ahora! Vaya a la documentación de Moodle 3.9 para obtener más información, opciones de configuración y guía de uso.