GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Moodle avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04

Moodle est un système de gestion de l'apprentissage gratuit et open-source écrit en PHP. Il permet aux tuteurs et aux instructeurs de créer des cours pour leurs étudiants ou apprenants. Moodle fournit un système intégré robuste et sécurisé et est livré avec un tableau de bord personnalisé qui aide les utilisateurs à accéder aux cours actuels, passés ou futurs, ainsi qu'à revoir les travaux en attente. Il est utilisé par de nombreuses écoles, universités et organisations à travers le monde et offre une meilleure expérience d'apprentissage. Il fournit un riche ensemble de fonctionnalités, notamment un wiki, la notation, la soumission de devoirs, des quiz en ligne, des forums de discussion, etc.

Dans ce tutoriel, nous allons vous montrer comment installer Moodle avec le serveur Web Nginx et Let's Encrypt SSL sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

Avant de commencer, vous devrez mettre à jour vos packages système vers la dernière version. Vous pouvez les mettre à jour à l'aide de la commande suivante :

apt-get update -y

Une fois votre serveur mis à jour, vous pouvez passer à l'étape suivante.

Installer LEMP

Tout d'abord, vous devrez installer Apache, MariaDB, PHP et d'autres bibliothèques PHP sur votre système. Vous pouvez tous les installer à l'aide de la commande suivante :

apt-get install nginx mariadb-server php-fpm php-common php-mysql php-gmp php-curl php-intl php-mbstring php-soap php-xmlrpc php-gd php-xml php-cli php-zip unzip git curl -y

Une fois tous les packages installés, éditez le fichier php.ini et modifiez certains paramètres :

nano /etc/php/7.4/fpm/php.ini

Modifiez les lignes suivantes :

memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Enregistrez et fermez le fichier puis redémarrez le service PHP-FPM pour appliquer les modifications :

systemctl restart php7.4-fpm

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Créer une base de données

Moodle utilise MySQL ou MariaDB comme backend de base de données, vous devrez donc créer une base de données et un utilisateur pour Moodle.

Tout d'abord, connectez-vous au shell MySQL avec la commande suivante :

mysql

Une fois connecté, créez une base de données et un utilisateur avec la commande suivante :

CREATE DATABASE moodledb;
CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'password';

Ensuite, accordez tous les privilèges à la base de données Moodle avec la commande suivante :

GRANT ALL ON moodledb.* TO 'moodle'@'localhost' WITH GRANT OPTION;

Ensuite, videz les privilèges et quittez MySQL avec la commande suivante :

FLUSH PRIVILEGES;
EXIT;

Ensuite, éditez le fichier de configuration par défaut de MariaDB et définissez le innodb_file_format :

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Ajoutez les lignes suivantes dans la section [mysqld] :

[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = ON

Enregistrez le fichier puis redémarrez le service MariaDB pour appliquer les modifications :

systemctl restart mariadb

Installer Moodle

Tout d'abord, changez le répertoire vers le répertoire racine d'Apache et téléchargez la dernière version de Moodle avec la commande suivante :

cd /var/www/html
git clone -b MOODLE_38_STABLE git://git.moodle.org/moodle.git moodle

Une fois le téléchargement terminé, éditez le fichier config.php de Moodle et définissez le type de base de données :

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

Recherchez la ligne suivante :

$CFG->dbtype    = 'mysqli';

Et, remplacé par la ligne suivante :

$CFG->dbtype    = 'mariadb';

Enregistrez et fermez le fichier, puis créez un répertoire de données Moodle, définissez la propriété et les autorisations appropriées avec la commande suivante :

mkdir -p /var/www/html/moodledata
chown -R www-data:www-data /var/www/html/moodle
chmod -R 755 /var/www/html/*
chown www-data:www-data /var/www/html/moodledata

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Configurer Nginx pour Moodle

Ensuite, vous devrez créer un fichier de configuration d'hôte virtuel Nginx pour héberger Moodle :

nano /etc/nginx/conf.d/moodle.conf

Ajoutez les lignes suivantes :

server {
    listen 80;
    root /var/www/html/moodle;
    index  index.php index.html index.htm;
    server_name  moodle.example.com;

    client_max_body_size 100M;
    autoindex off;
    location / {
        try_files $uri $uri/ =404;
    }

    location /dataroot/ {
      internal;
      alias /var/www/html/moodledata/;
    }

    location ~ [^/].php(/|$) {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Enregistrez et fermez le fichier puis vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Vous devriez obtenir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Enfin, redémarrez le service Nginx pour appliquer les modifications :

systemctl restart nginx

À ce stade, Nginx est configuré pour héberger Moodle. Vous pouvez maintenant passer à l'étape suivante.

Accéder à l'interface Web Moodle

Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web de Moodle en utilisant l'URL http://moodle.example.com . Vous devriez voir la page d'installation de Moodle :

Sélectionnez votre langue et cliquez sur Suivant . Vous devriez voir la page suivante :

Fournissez votre adresse Web Moodle, le chemin du répertoire, le chemin du répertoire de données et cliquez sur Suivant . Vous devriez voir la page suivante :

Sélectionnez votre type de pilote de base de données et cliquez sur Suivant . Vous devriez voir la page suivante :

Indiquez votre hébergeur de base de données, le nom de la base de données, le nom d'utilisateur, le mot de passe et cliquez sur Suivant . Vous devriez voir la page suivante :

Cliquez sur Continuer pour confirmer toutes les conditions. Vous devriez voir la page suivante :

Assurez-vous que toutes les extensions PHP requises sont installées, puis cliquez sur Continuer . Vous devriez voir la page suivante :

Cliquez sur Continuer . Vous devriez voir la page suivante :

Indiquez votre nom d'utilisateur, votre mot de passe, votre adresse e-mail, votre pays, votre fuseau horaire et cliquez sur Mettre à jour profil. Vous devriez voir la page suivante :

Fournissez vos paramètres de page d'accueil et cliquez sur Enregistrer modifications bouton pour enregistrer les modifications.

Sécuriser Moodle avec Let's Encrypt SSL

Ensuite, vous devrez installer l'outil Certbot pour télécharger Let's Encrypt SSL et configurer Nginx pour utiliser ce SSL.

Tout d'abord, installez le Certbot avec la commande suivante :

apt-get install python3-certbot-nginx -y

Une fois installé, exécutez la commande suivante pour télécharger tout SSL et configurer Nginx pour l'utiliser :

certbot --nginx -d moodle.example.com

Il vous sera demandé de fournir une adresse e-mail valide et d'accepter les conditions d'utilisation comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for moodle.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/moodle.conf

Ensuite, choisissez de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Tapez 2 et appuyez sur Entrée pour continuer. Vous devriez voir le résultat suivant :

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/moodle.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://moodle.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=moodle.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/moodle.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/moodle.example.com/privkey.pem
   Your cert will expire on 2021-05-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Vous pouvez maintenant accéder au site Web de Moodle en utilisant l'URL http://moodle.example.com

Conclusion

Toutes nos félicitations! vous avez installé avec succès Moodle avec Nginx et Let's Encrypt SSL sur Ubuntu 20.04. Vous pouvez désormais créer facilement votre propre système de gestion de l'apprentissage avec Moodle.


Ubuntu
  1. Comment installer Nextcloud avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

  2. Comment installer Magento 2 avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04 LTS

  3. Comment installer Drupal 8 avec Nginx, PHP-FPM et SSL sur Ubuntu 15.10

  4. Comment installer OpenCart 2 avec Nginx et SSL sur Ubuntu 15.10

  5. Installez Automad CMS avec Nginx et Lets Encrypt SSL sur Ubuntu 18.04

Comment installer Concrete5 CMS avec Apache et Lets Encrypt SSL gratuit sur Ubuntu 20.04

Comment installer ProjectSend avec Apache et Lets Encrypt SSL sur Ubuntu 20.04

Comment installer MediaWiki avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04

Comment installer Gitea avec Nginx et Lets Encrypt SSL gratuit sur Ubuntu 20.04

Comment installer Nginx avec Let's Encrypt TLS/SSL sur Ubuntu 20.04

Comment installer Let's Encrypt SSL avec Nginx sur Ubuntu 16.04 LTS