Búsqueda de sitios web

Cómo instalar la plataforma de aprendizaje Moodle con Nginx en CentOS 8


Moodle es el sistema de gestión de aprendizaje más popular del mundo para crear sitios sólidos de aprendizaje en línea. Cuenta con una variedad de actividades y herramientas educativas entre las que puede elegir, admite la gestión de evaluaciones y se entrega con certificados personalizados. También permite la comunicación con sus alumnos en tiempo real con una potente herramienta de videoconferencia. Además, está preparado para dispositivos móviles, por lo que sus alumnos pueden aprender desde sus dispositivos móviles.

Requisitos del servidor Moodle

  • Sistema operativo: una instalación mínima del servidor CentOS 8 o RHEL 8 con pila LEMP instalada.
  • Espacio en disco: 200 MB para Moodle, y 5 GB es probablemente un mínimo realista para almacenar contenido.
  • Procesador: 1 GHz (mín.), se recomienda 2 GHz de doble núcleo o más.
  • Memoria: 512 MB (min), se recomienda 1 GB o más. Es probable que haya más de 8 GB en un servidor de producción grande.

En esta página

  • Creación de un registro DNS de dominio para el sitio web de Moodle
  • Instalación de la plataforma de aprendizaje Moodle en el servidor CentOS 8
  • Configuración de NGINX para servir el sitio web de Moodle
  • Complete la instalación de Moodle a través del instalador web
  • Habilite HTTPS en el sitio Moodle usando Let's Encrypt

Creación de un registro DNS de dominio para el sitio web de Moodle

1. Comience creando un subdominio que los usuarios utilizarán para acceder al sitio de aprendizaje en línea Moodle. Por ejemplo, si su nombre de dominio es testprojects.me, puede crear un subdominio llamado learning.testprojects.me.

Abra la configuración DNS avanzada de su nombre de dominio y agregue un registro A como se muestra en la siguiente imagen.

Instalación de Moodle en el servidor CentOS 8

2. Antes de instalar Moodle, asegúrese de tener las extensiones PHP requeridas en su servidor; puede ejecutar el siguiente comando para instalarlas:

dnf 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 la aplicación Moodle de la siguiente manera.

mysql -u root -p

Luego cree la base de datos, el usuario de la base de datos y cree una contraseña segura para su uso.

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

4. Ahora descargue la última versión de Moodle (3.9 en el momento de escribir este artículo) del sitio web oficial del proyecto Moodle, extraiga el archivo y muévalo a su directorio raíz web (/var/www/html/), luego establezca los permisos y la propiedad apropiados para permitir que el servidor web acceda al directorio de Moodle, de la siguiente manera.

wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
tar -xzvf  moodle-latest-39.tgz
mv moodle /var/www/html/
chmod 775 -R /var/www/html/moodle
chown nginx:nginx -R /var/www/html/moodle

5. A continuación, cree el directorio moodledata, que es la ubicación de los archivos que se cargan o crean mediante la interfaz de Moodle, luego asigne los permisos adecuados y propiedad para permitir al servidor web acceso de lectura y escritura:


mkdir -p /var/www/html/moodledata
chmod 770 -R /var/www/html/moodledata
chown :nginx -R /var/www/html/moodledata

6. A continuación, vaya al directorio de instalación de Moodle y cree un archivo config.php a partir del ejemplo config.dist.php . proporcionado, luego ábralo para editarlo y configurar algunas configuraciones clave para su plataforma Moodle, como los parámetros de conexión de la base de datos y la ubicación del sitio y dónde puede encontrar el directorio moodledata:

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

Establezca el tipo de base de datos correcto, el host de la base de datos correcto, el nombre de la base de datos y el usuario de la base de datos y la contraseña del usuario.

$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    = 'moodledb';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'p@zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. También configure la URL utilizada para acceder a su sitio Moodle, esto especifica la ubicación del wwwroot donde se encuentran sus archivos web de Moodle, y también el dataroot (el directorio moodledata):

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

Configuración de NGINX para servir el sitio web de Moodle

8. En esta sección, debe configurar NGINX para servir su aplicación Moodle. Debe crear un bloque de servidor para ello en la configuración de NGINX como se muestra.

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

Copie y pegue la siguiente configuración en el archivo de configuración del bloque del servidor. Reemplace el nombre del servidor con su nombre de subdominio creado anteriormente, y el fastcgi_pass debería apuntar a php-fpm (nota que en CentOS 8, PHP-FPM acepta solicitudes FastCGI utilizando la dirección definida en /etc/nginx/conf.d/ configuración php-fpm.conf).

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            php-fpm;
        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. Luego verifique que la configuración de NGINX sea correcta; si está OK, reinicie nginx y Servicios php-fpm para aplicar los cambios recientes:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Si tiene SELinux habilitado en su sistema, ejecute los siguientes comandos para establecer el contexto correcto para acceder a los archivos web de Moodle en el servidor:

setsebool -P httpd_can_network_connect on
chcon -R --type httpd_sys_rw_content_t /var/www/html

11. Además, asegúrese de que los servicios HTTP y HTTPS estén abiertos en el firewall para permitir el tráfico al NGINX. Servidor web:

firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Complete la instalación de Moodle a través del instalador web

12. Para acceder al instalador web de Moodle, abra su navegador web y navegue utilizando el subdominio que creó anteriormente:

http://learning.testprojects.me

Una vez que se cargue la página de bienvenida, lea los términos y condiciones y haga clic en Continuar.

13. A continuación, el instalador web comprobará si su sistema cumple con los requisitos para ejecutar un sitio Moodle de la versión especificada. Puede desplazarse hacia abajo para ver más información.

14. El instalador se quejará de que HTTPS no está habilitado, ignore ese error por ahora (en la siguiente sección, mostraremos cómo habilitar HTTPS en Moodle) y haga clic en Continuar, para iniciar la instalación real de los archivos web.

15. Ahora el instalador iniciará la instalación real de los archivos Moodle como se muestra en la siguiente captura de pantalla. Una vez que esté completo, haga clic en Continuar.

16. En el siguiente paso, debe actualizar la cuenta de administrador de su sitio Moodle actualizando el nombre de usuario, la contraseña, el nombre, apellido y la dirección de correo electrónico. Luego, desplácese hacia abajo en la página y haga clic en Actualizar perfil.

17. Luego actualice la configuración de la página principal del sitio Moodle. Luego, desplácese hacia abajo y haga clic en Actualizar para comenzar a usar su sitio Moodle.

18. A continuación, debe registrar su sitio siguiendo las instrucciones en pantalla. Puede ir al panel haciendo clic en Panel.

Configurar HTTPS en el sitio Moodle usando Let's Encrypt

HTTPS agrega la primera capa de seguridad a su sitio para permitir comunicaciones seguras entre sus usuarios y la aplicación Moodle (especialmente el servidor web NGINX que recibe solicita y entrega respuestas).

Puede comprar un certificado SSL/TLS de una CA comercial o utilizar Let's Encrypt, que es gratuito y reconocido por todos los navegadores web modernos. Para esta guía, usaremos Let's Encrypt.

19. La implementación del certificado Let's Encrypt se gestiona automáticamente mediante la herramienta certbot. Puede instalar certbot y otros paquetes necesarios con el siguiente comando:

dnf install certbot python3-certbot-nginx

20. Luego ejecute el siguiente comando para obtener un certificado Let's Encrypt y haga que Certbot edite su configuración NGINX automáticamente para entregarlo (también configurará HTTP será redirigido automáticamente a HTTPS).

certbot --nginx

21. Luego ejecute el siguiente comando para habilitar la renovación automática del certificado Let's Encrypt SSL/TLS:

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

22. A continuación, actualice la configuración de Moodle para comenzar a usar HTTPS.

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

cambie la URL wwwroot de HTTP a HTTPS:

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

23. Por último, pero no menos importante, confirme que su sitio Moodle se está ejecutando ahora en HTTPS.

¡Eso es todo por ahora! Para obtener más información y opciones de configuración para ejecutar su nueva plataforma de aprendizaje, visite el sitio web de Moodle y lea la documentación oficial.