Installation Moodle · 9 min read · Sep 08, 2025

Comment installer Moodle LMS sur un serveur Debian 12

Moodle est une solution ouverte pour le système de gestion de l’apprentissage (LMS). C’est une plateforme à des fins éducatives, allant de la création de cours en ligne, à la gestion d’écoles en ligne, à la gestion de contenu, et à l’offre d’apprentissage collaboratif. Moodle est principalement écrit en PHP avec MySQL/MariaDB comme base de données et peut être exécuté sur n’importe quel système d’exploitation. Vous choisissez entre Apache ou Nginx pour votre installation Moodle.

Dans ce guide, vous apprendrez comment installer le système de gestion de l’apprentissage Moodle sur un serveur Debian 12. Vous exécuterez Moodle avec la pile LAMP (Linux, Apache, MariaDB et PHP), sécuriserez votre serveur Debian avec UFW (Uncomplicated Firewall), puis sécuriserez Moodle avec HTTP via Certbot et Letsencrypt.

Prérequis

Assurez-vous d’avoir les éléments suivants avant de commencer :

  • Un serveur Debian 12
  • Un utilisateur non-root avec des privilèges d’administrateur
  • Un nom de domaine pointant vers l’adresse IP du serveur

Installation des dépendances

Le LMS Moodle est écrit en PHP et MySQL, vous devez donc installer ces paquets sur votre système. Dans cet exemple, vous exécuterez Moodle avec la pile LAMP (Linux, Apache, MariaDB et PHP). Donc pour l’instant, vous allez installer LAMP sur votre serveur Debian.

Avant d’installer un paquet, exécutez la commande ci-dessous pour mettre à jour votre index de paquets Debian.

sudo apt update

mise à jour du dépôt

Maintenant, installez les dépendances de la pile LAMP (Linux, Apache, MariaDB et PHP) avec la commande suivante. Entrez ‘Y’ pour continuer l’installation.

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

installer lamp

Après l’installation, vérifiez le service ‘apache2’ pour vous assurer que le service fonctionne.

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

Vous pouvez voir ci-dessous que le serveur web Apache est en cours d’exécution et activé.

vérifier apache2

Maintenant, vérifiez le service ‘mariadb’ en exécutant la commande suivante.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Dans la sortie ci-dessous, vous pouvez voir que le serveur MariaDB est en cours d’exécution.

vérifier mariadb

Enfin, vérifiez la version de PHP et listez les modules activés en utilisant la commande ci-dessous.

php -v  
php -m

Vous verrez que PHP 8.2 est installé avec certains modules par défaut tels que ‘curl’, ‘exif’ et ‘date’ activés.

vérifier php

Installation de UFW (Uncomplicated Firewall)

Après avoir installé la pile LAMP, installons UFW (Uncomplicated Firewall) pour sécuriser le serveur. Ensuite, ouvrez les ports pour les protocoles SSH, HTTP et HTTPS. Enfin, démarrons et activons UFW.

Pour installer UFW, exécutez la commande ‘apt’ ci-dessous.

sudo apt install ufw

installer ufw

Une fois UFW installé, exécutez la commande ‘ufw’ ci-dessous pour ouvrir les ports pour OpenSSH, HTTP (80) et HTTPS (443). Vous verrez une sortie telle que ‘Règles mises à jour’.

sudo ufw allow OpenSSH  
sudo ufw allow 80/tcp  
sudo ufw allow 443/tcp

Maintenant, exécutez la commande ci-dessous pour démarrer et activer UFW sur votre machine Debian. Lorsque vous y êtes invité, entrez ‘y’ pour confirmer et continuer. Vous verrez une sortie ‘Le pare-feu est actif et activé au démarrage du système’.

sudo ufw enable

Enfin, vérifiez l’état de UFW avec la commande ci-dessous. Vous verrez que UFW est ‘actif’ avec OpenSSH, et les ports ‘80’ et ‘443’ sont ‘ AUTORISÉS ‘.

sudo ufw status

vérifier l'état

Configuration du serveur MariaDB

Avant d’installer Moodle, vous devez changer le moteur de stockage par défaut en ‘innodb’ et configurer ‘Barracuda’ comme format par défaut. Ensuite, vous devez également sécuriser le serveur MariaDB et configurer le mot de passe ‘root’ en utilisant l’utilitaire ‘mariadb-secure-installation’.

Ouvrez la configuration par défaut du serveur MariaDB ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ avec l’éditeur ‘nano’.

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

Insérez la configuration ci-dessous pour activer le format ‘Barracuda’ et configurer le moteur de stockage par défaut sur ‘InnoDB’.

innodb_file_format = Barracuda   
default_storage_engine = innodb  
innodb_large_prefix = 1  
innodb_file_per_table = 1

Enregistrez le fichier et quittez l’éditeur.

Maintenant, exécutez la commande ‘systemctl’ ci-dessous pour redémarrer le serveur MariaDB et appliquer vos modifications.

sudo systemctl restart mariadb

Après cela, exécutez la commande ‘mariadb-secure-installation’ ci-dessous pour sécuriser votre installation de serveur MariaDB.

sudo mariadb-secure-installation

Avec cela, vous serez interrogé sur les configurations du serveur MariaDB :

  • Appuyez sur ENTRÉE lorsque vous êtes interrogé sur le mot de passe root (vous le configurerez plus tard)
  • Entrez ‘n’ lorsque vous êtes interrogé pour passer à l’authentification ‘unix_socket’
  • Entrez ‘Y’ pour configurer le mot de passe root de MariaDB, puis tapez votre nouveau mot de passe et répétez
  • Entrez ‘Y’ pour supprimer l’utilisateur anonyme de MariaDB
  • Entrez ‘Y’ à nouveau pour désactiver la connexion à distance pour l’utilisateur root
  • Entrez ‘Y’ pour supprimer la base de données par défaut ‘test’ et ses privilèges
  • Entrez ‘Y’ pour recharger les privilèges de table et appliquer vos modifications

Une fois terminé, passez à l’étape suivante pour créer une nouvelle base de données et un utilisateur.

Création d’une base de données et d’un utilisateur pour Moodle

Avec le serveur MariaDB configuré, créons maintenant une nouvelle base de données et un utilisateur qui seront utilisés par Moodle. Vous utiliserez le client ‘mariadb’ pour vous connecter à MariaDB et créer une nouvelle base de données et un utilisateur.

Connectez-vous au serveur MariaDB avec la commande ‘mariadb’ ci-dessous. Entrez votre mot de passe root MariaDB lorsque vous y êtes invité.

sudo mariadb -u root -p

Exécutez les requêtes suivantes pour créer une nouvelle base de données et un utilisateur ‘moodle’ avec le mot de passe ‘MoodlePassw0rd’. Assurez-vous de changer les informations d’identification de la base de données suivantes avec vos informations.

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";  
FLUSH PRIVILEGES;

créer une base de données et un utilisateur

Maintenant, exécutez la requête ci-dessous pour vérifier l’utilisateur ‘moodle’. Assurez-vous que l’utilisateur ‘moodle’ peut accéder à la base de données ‘moodle’.

SHOW GRANTS FOR moodle@localhost;

Enfin, tapez ‘QUIT’ pour quitter le serveur MariaDB.

afficher les privilèges de la base de données

Configuration de PHP

Maintenant que vous avez configuré le serveur MariaDB et créé un nouvel utilisateur de base de données, configurons le fichier ‘php.ini’ et modifions certaines configurations par défaut selon les besoins de Moodle.

Ouvrez le fichier ‘php.ini’ avec l’éditeur ‘nano’.

sudo nano /etc/php/8.2/apache2/php.ini

Changez la configuration PHP par défaut avec ce qui suit. Vous pouvez changer la ‘memory_limit’ en fonction de la mémoire de votre serveur.

memory_limit = 256M  
upload_max_filesize = 60M  
max_execution_time = 300  
date.timezone = Europe/Amsterdam  
max_input_vars = 5000

Lorsque vous avez terminé, enregistrez le fichier et quittez l’éditeur.

Enfin, exécutez la commande ‘systemctl’ ci-dessous pour redémarrer le serveur web ‘apache2’ et appliquer votre nouvelle configuration PHP.

sudo systemctl restart apache2

Téléchargement du code source de Moodle

Après avoir configuré PHP, vous êtes prêt à télécharger le code source de Moodle, puis à configurer le répertoire d’installation et le répertoire ‘data’ pour Moodle. Dans cet exemple, vous allez configurer le répertoire d’installation de Moodle sur ‘/var/www/moodle’ et le répertoire ‘data’ sur ‘/var/www/moodledata’.

Allez dans le répertoire ‘/var/www’ et téléchargez le code source de Moodle avec la commande ‘wget’ ci-dessous.

cd /var/www  
sudo wget https://download.moodle.org/download.php/direct/stable405/moodle-latest-405.tgz

Une fois téléchargé, exécutez la commande ‘tar’ ci-dessous pour extraire le code source de Moodle et renommer le répertoire extrait en ‘moodle’. Avec cela, votre installation de Moodle sera située dans le répertoire ‘/var/www/moodle’.

tar -xf moodle-latest-405.tgz

Ensuite, créez un nouveau répertoire ‘/var/www/moodledata’ qui sera utilisé comme répertoire de données pour votre installation Moodle.

mkdir -p /var/www/moodledata

Enfin, exécutez la commande ci-dessous pour changer la propriété des répertoires ‘/var/www/moodle’ et ‘/var/www/moodledata’ à l’utilisateur ‘www-data’. Ensuite, assurez-vous que l’utilisateur ‘www-data’ peut lire, écrire et exécuter des fichiers dans ces répertoires.

sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata  
sudo chmod u+rwx /var/www/moodle /var/www/moodledata

configurer le répertoire moodle

Configuration de l’hôte virtuel Apache

Maintenant que vous avez téléchargé Moodle, l’étape suivante consiste à créer un nouveau fichier d’hôte virtuel Apache pour Moodle. Assurez-vous donc que vous avez un nom de domaine résolu/pointé vers l’adresse IP du serveur.

Créez une nouvelle configuration d’hôte virtuel ‘/etc/apache2/sites-available/moodle.conf’ avec l’éditeur ‘nano’.

sudo nano /etc/apache2/sites-available/moodle.conf

Insérez la configuration ci-dessous pour configurer un fichier d’hôte virtuel pour Moodle. Assurez-vous de changer le paramètre ‘ServerName’ avec votre nom de domaine.

  
DocumentRoot /var/www/moodle/  
ServerName moodle.howtoforge.local  
ServerAdmin [email protected]  
  
  
Options +FollowSymlinks  
AllowOverride All  
Require all granted  
  
  
ErrorLog /var/log/apache2/moodle_error.log  
CustomLog /var/log/apache2/moodle_access.log combined  

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

Maintenant, exécutez la commande ‘a2enmod’ ci-dessous pour activer le module ‘rewrite’, puis exécutez la commande ‘a2ensite’ ci-dessous pour activer l’hôte virtuel ‘moodle.conf’.

sudo a2enmod rewrite  
sudo a2ensite moodle.conf

Ensuite, exécutez la commande ‘apachectl’ ci-dessous pour vérifier votre configuration Apache. Si vous avez une configuration Apache correcte, vous verrez une sortie telle que ‘Syntax is OK’.

sudo apachectl configtest

configurer apache

Enfin, exécutez la commande ‘systemctl’ ci-dessous pour redémarrer le serveur web Apache et appliquer vos modifications.

sudo systemctl restart apache2

Sécurisation de Moodle avec HTTPS

À ce stade, votre installation de Moodle est prête. Avant de continuer, vous allez sécuriser Moodle avec HTTPS via Certbot et Letsencrypt. Faites cela lorsque vous installez Moodle sur un serveur public. Si vous êtes en développement local, vous pouvez ignorer ou mettre en œuvre HTTPS via des certificats auto-signés.

Installez le ‘certbot’ et le plugin ‘python3-certbot-apache’ avec la commande ‘apt’ suivante. Entrez ‘Y’ pour confirmer l’installation.

sudo apt install certbot python3-certbot-apache

Après l’installation, exécutez la commande ‘certbot’ suivante pour générer des certificats SSL pour Moodle. Assurez-vous de changer le nom de domaine et l’adresse e-mail suivants avec votre domaine.

sudo certbot --apache --agree-tos --no-eff-email -m [email protected] -d moodle.howtoforge.local

Une fois terminé, vos certificats SSL seront disponibles dans le répertoire ‘/etc/letsencrypt/live/domain.com’ et votre installation de Moodle fonctionnera sous HTTPS.

Installation de Moodle

Ouvrez votre navigateur web et visitez le nom de domaine de votre installation Moodle tel que https://moodle.howtoforge.local/, et vous verrez l’assistant d’installation de Moodle.

Sélectionnez votre langue par défaut pour Moodle et cliquez sur ‘ Suivant ‘.

sélectionner la langue

Entrez votre nom de domaine et le répertoire de données Moodle à ‘ /var/www/moodledata ‘.

sélectionner le domaine et le répertoire de données

Sélectionnez ‘ MariaDB ‘ comme base de données par défaut pour Moodle.

pilote de base de données mariadb

Entrez les détails de votre base de données MariaDB tels que dbname, dbuser et mot de passe.

configuration mariadb

Cliquez sur ‘ Continuer ‘ sur l’avis de droit d’auteur.

droit d'auteur

Dans la section ‘Vérifications du serveur’, assurez-vous que votre serveur Debian répond aux exigences de Moodle. Le statut de chaque élément doit être ‘ OK ‘.

vérifications système

Vous verrez maintenant l’installation de Moodle comme suit :

installation moodle

Une fois l’installation terminée, entrez vos détails d’administrateur (nom d’utilisateur, e-mail et mot de passe).

utilisateur admin

Maintenant, entrez les informations de votre site Moodle.

informations du site moodle

Enfin, vous verrez le tableau de bord administrateur Moodle suivant.

tableau de bord

Conclusion

Félicitations ! Vous avez terminé l’installation du système de gestion de l’apprentissage Moodle (LMS) sur le serveur Debian 12. Vous avez Moodle opérationnel avec la pile LAMP (Linux, Apache, MariaDB et PHP) et sécurisé avec UFW (Uncomplicated Firewall) et HTTPS via Certbot et Letsencrypt. À partir de là, vous pouvez appliquer un nouveau thème pour Moodle, installer de nouveaux addons pour étendre la fonctionnalité, ou vous pouvez consulter le guide de l’utilisateur Moodle pour gérer votre installation Moodle.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.