Recherche de site Web

Comment installer la plateforme d'apprentissage Moodle avec Nginx dans CentOS 8


Moodle est le système de gestion de l'apprentissage le plus populaire au monde pour créer des sites d'apprentissage en ligne robustes. Il propose une gamme d'activités et d'outils pédagogiques parmi lesquels vous pouvez choisir, il prend en charge la gestion des évaluations et est livré avec des certificats personnalisés. Il permet également de communiquer avec vos étudiants en temps réel grâce à un puissant outil de vidéoconférence. En outre, il est prêt pour les appareils mobiles, afin que vos élèves puissent apprendre depuis leurs appareils mobiles.

Configuration requise pour le serveur Moodle

  • Système d'exploitation : une installation minimale du serveur CentOS 8 ou RHEL 8 avec la pile LEMP installée.
  • Espace disque : 200 Mo pour le Moodle, et 5 Go est probablement un minimum réaliste pour stocker du contenu.
  • Processeur : 1 GHz (min), 2 GHz dual-core ou plus recommandé.
  • Mémoire : 512 Mo (min), 1 Go ou plus est recommandé. 8 Go et plus sont probables sur un grand serveur de production.

Sur cette page

  • Création d'un enregistrement DNS de domaine pour le site Web Moodle
  • Installation de la plateforme d'apprentissage Moodle sur le serveur CentOS 8
  • Configuration de NGINX pour servir le site Web Moodle
  • Installation complète de Moodle via le programme d'installation Web
  • Activez HTTPS sur le site Moodle à l'aide de Let's Encrypt

Création d'un enregistrement DNS de domaine pour le site Web Moodle

1. Commencez par créer un sous-domaine que les utilisateurs utiliseront pour accéder au site d'apprentissage en ligne Moodle. Par exemple, si votre nom de domaine est testprojects.me, vous pouvez créer un sous-domaine appelé learning.testprojects.me.

Ouvrez les paramètres DNS avancés de votre nom de domaine et ajoutez un enregistrement A comme indiqué dans l'image suivante.

Installer Moodle sur le serveur CentOS 8

2. Avant d'installer Moodle, assurez-vous que vous disposez des extensions PHP requises sur votre serveur, vous pouvez exécuter la commande suivante pour les installer :

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. Ensuite, créez une base de données pour l'application Moodle comme suit.

mysql -u root -p

Créez ensuite la base de données, l'utilisateur de la base de données et créez un mot de passe sécurisé pour son utilisation.

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. Téléchargez maintenant la dernière version de Moodle (3.9 au moment de la rédaction) depuis le site Web officiel du projet Moodle, extrayez le fichier d'archive et déplacez-le dans votre répertoire racine Web (/var/www/html/), puis définissez les autorisations et la propriété appropriées pour permettre au serveur Web d'accéder au répertoire Moodle, comme suit.

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. Ensuite, créez le répertoire moodledata qui est l'emplacement des fichiers téléchargés ou créés par l'interface Moodle, puis attribuez les autorisations appropriées et propriété pour permettre au serveur Web d'y accéder en lecture et en écriture :


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

6. Ensuite, accédez au répertoire d'installation de Moodle et créez un fichier config.php à partir de l'exemple config.dist.php fourni, puis ouvrez-le pour le modifier afin de configurer certains paramètres clés de votre plateforme Moodle, tels que les paramètres de connexion à la base de données, l'emplacement du site et l'endroit où il peut trouver le répertoire moodledata :

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

Définissez le type de base de données correct, l'hôte de base de données correct, le nom de la base de données, l'utilisateur de la base de données et le mot de passe de l'utilisateur.

$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. Définissez également l'URL utilisée pour accéder à votre site Moodle, cela spécifie l'emplacement du wwwroot où se trouvent vos fichiers Web Moodle, et ainsi que le dataroot (le répertoire moodledata) :

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

Configuration de NGINX pour servir le site Web Moodle

8. Dans cette section, vous devez configurer NGINX pour servir votre application Moodle. Vous devez créer un bloc serveur pour cela dans la configuration NGINX, comme indiqué.

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

Copiez et collez la configuration suivante dans le fichier de configuration du bloc serveur. Remplacez le nom du serveur par votre nom de sous-domaine créé ci-dessus, et le fastcgi_pass doit pointer vers php-fpm (notez que sur CentOS 8, PHP-FPM accepte les requêtes FastCGI en utilisant l'adresse définie dans le /etc/nginx/conf.d/ 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;
}
}

Enregistrez le fichier et fermez-le.

9. Vérifiez ensuite l'exactitude de la configuration de NGINX, si elle est Ok, redémarrez nginx et Services php-fpm pour appliquer les modifications récentes :

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Si SELinux est activé sur votre système, exécutez les commandes suivantes pour définir le contexte correct pour accéder aux fichiers Web Moodle sur le serveur:

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

11. En outre, assurez-vous que les services HTTP et HTTPS sont ouverts dans le pare-feu pour autoriser le trafic vers le NGINX. serveur Web:

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

Installation complète de Moodle via le programme d'installation Web

12. Pour accéder au programme d'installation Web de Moodle, ouvrez votre navigateur Web et naviguez en utilisant le sous-domaine que vous avez créé ci-dessus :

http://learning.testprojects.me

Une fois la page d'accueil chargée, lisez les termes et conditions et cliquez sur Continuer.

13. Ensuite, l'installateur Web vérifiera si votre système répond aux exigences pour exécuter un site Moodle de la version spécifiée. Vous pouvez faire défiler vers le bas pour afficher plus d'informations.

14. L'installateur se plaindra du fait que HTTPS n'est pas activé, ignorera cette erreur pour l'instant (dans la section suivante, nous montrerons comment activer HTTPS sur Moodle), et cliquera sur Continuer, pour démarrer l'installation proprement dite des fichiers Web.

15. Le programme d'installation va maintenant démarrer l'installation proprement dite des fichiers Moodle, comme indiqué dans la capture d'écran suivante. Une fois terminé, cliquez sur Continuer.

16. À l'étape suivante, vous devez mettre à jour le compte administrateur de votre site Moodle en mettant à jour le nom d'utilisateur, le mot de passe, le prénom, le nom et l'adresse e-mail. Faites ensuite défiler la page vers le bas et cliquez sur Mettre à jour le profil.

17. Mettez ensuite à jour les paramètres de la page d'accueil du site Moodle. Faites ensuite défiler vers le bas et cliquez sur Mettre à jour pour commencer à utiliser votre site Moodle.

18. Ensuite, vous devez enregistrer votre site en suivant les instructions à l'écran. Vous pouvez accéder au tableau de bord en cliquant sur le tableau de bord.

Configuration de HTTPS sur le site Moodle à l'aide de Let's Encrypt

HTTPS ajoute la première couche de sécurité à votre site pour permettre des communications sécurisées entre vos utilisateurs et l'application Moodle (notamment le serveur web NGINX qui reçoit demandes et fournit des réponses).

Vous pouvez soit acheter un certificat SSL/TLS auprès d'une autorité de certification commerciale, soit utiliser Let's Encrypt qui est gratuit et reconnu par tous les navigateurs Web modernes. Pour ce guide, nous utiliserons Let's Encrypt.

19. Le déploiement du certificat Let's Encrypt est automatiquement géré à l'aide de l'outil certbot. Vous pouvez installer certbot et d'autres packages requis avec la commande suivante :

dnf install certbot python3-certbot-nginx

20. Exécutez ensuite la commande suivante pour obtenir un certificat Let's Encrypt et demandez à Certbot de modifier automatiquement votre configuration NGINX pour la servir (il configurera également HTTP pour être redirigé automatiquement vers HTTPS).

certbot --nginx

21. Exécutez ensuite la commande suivante pour activer le renouvellement automatique du certificat 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. Ensuite, mettez à jour votre configuration Moodle pour commencer à utiliser HTTPS.

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

modifiez l'URL wwwroot de HTTP à HTTPS :

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

23. Enfin et surtout, confirmez que votre site Moodle fonctionne désormais sur HTTPS.

C'est tout pour le moment! Pour plus d'informations et d'options de configuration pour exécuter votre nouvelle plateforme d'apprentissage, accédez au site Web Moodle et lisez la documentation officielle.