Installazione Moodle · 9 min read · Sep 08, 2025

Come installare Moodle LMS su un server Debian 12

Moodle è una soluzione open per il Learning Management System (LMS). È una piattaforma per scopi educativi, dalla creazione di corsi online, gestione di scuole online, gestione dei contenuti e offerta di apprendimento collaborativo. Moodle è principalmente scritto in PHP con MySQL/MariaDB come database e può essere eseguito su qualsiasi sistema operativo. Puoi scegliere tra Apache o Nginx per la tua installazione di Moodle.

In questa guida, imparerai come installare il sistema di gestione dell’apprendimento Moodle su un server Debian 12. Eseguirai Moodle con il LAMP Stack (Linux, Apache, MariaDB e PHP), metterai in sicurezza il tuo server Debian con UFW (Uncomplicated Firewall) e poi metterai in sicurezza Moodle con HTTP tramite Certbot e Letsencrypt.

Prerequisiti

Assicurati di avere quanto segue prima di iniziare:

  • Un server Debian 12
  • Un utente non root con privilegi di amministratore
  • Un nome di dominio puntato all’indirizzo IP del server

Installazione delle dipendenze

Il Moodle LMS è scritto in PHP e MySQL, quindi devi installare quei pacchetti sul tuo sistema. In questo esempio, eseguirai Moodle con il LAMP Stack (Linux, Apache, MariaDB e PHP). Quindi per ora, installerai LAMP sul tuo server Debian.

Prima di installare qualsiasi pacchetto, esegui il comando qui sotto per aggiornare l’indice dei pacchetti di Debian.

sudo apt update

aggiorna repo

Ora installa le dipendenze del LAMP Stack (Linux, Apache, MariaDB e PHP) con il seguente comando. Inserisci ‘Y’ per procedere con l’installazione.

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

installa lamp

Dopo che l’installazione è completata, controlla il servizio ‘apache2’ per assicurarti che il servizio sia in esecuzione.

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

Puoi vedere qui sotto che il server web Apache è in esecuzione e abilitato.

controlla apache2

Ora controlla il servizio ‘mariadb’ eseguendo il seguente comando.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Nell’output qui sotto, puoi vedere che il server MariaDB è in esecuzione.

controlla mariadb

Infine, controlla la versione di PHP e l’elenco dei moduli abilitati utilizzando il comando qui sotto.

php -v  
php -m

Vedrai che PHP 8.2 è installato con alcuni moduli predefiniti come ‘curl’, ‘exif’ e ‘date’ abilitati.

controlla php

Installazione di UFW (Uncomplicated Firewall)

Dopo aver installato il LAMP Stack, installiamo UFW (Uncomplicated Firewall) per mettere in sicurezza il server. E poi, apriamo le porte per i protocolli SSH, HTTP e HTTPS. Infine, avviamo e abilitiamo UFW.

Per installare UFW, esegui il comando ‘apt’ qui sotto.

sudo apt install ufw

installa ufw

Una volta installato UFW, esegui il comando ‘ufw’ qui sotto per aprire le porte per OpenSSH, HTTP (80) e HTTPS (443). Vedrai un output come ‘Regole aggiornate’.

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

Ora esegui il comando qui sotto per avviare e abilitare UFW sulla tua macchina Debian. Quando richiesto, inserisci ‘y’ per confermare e procedere. Vedrai un output ‘Il firewall è attivo e abilitato all’avvio del sistema’.

sudo ufw enable

Infine, controlla lo stato di UFW con il comando qui sotto. Vedrai che UFW è ‘attivo’ con OpenSSH, e le porte ‘80’ e ‘443’ sono ‘ PERMESSE ‘.

sudo ufw status

controlla stato

Configurazione del server MariaDB

Prima di installare Moodle, devi cambiare il motore di archiviazione predefinito in ‘innodb’ e impostare ‘Barracuda’ come formato predefinito. Dopo di che, devi anche mettere in sicurezza il server MariaDB e impostare la password ‘root’ utilizzando l’utilità ‘mariadb-secure-installation’.

Apri la configurazione predefinita del server MariaDB ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ con l’editor ‘nano’.

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

Inserisci la configurazione qui sotto per abilitare il formato ‘Barracuda’ e impostare il motore di archiviazione predefinito su ‘InnoDB’.

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

Salva il file ed esci dall’editor.

Ora esegui il comando ‘systemctl’ qui sotto per riavviare il server MariaDB e applicare le tue modifiche.

sudo systemctl restart mariadb

Dopo di che, esegui il comando ‘mariadb-secure-installation’ qui sotto per mettere in sicurezza la tua installazione del server MariaDB.

sudo mariadb-secure-installation

Con questo, ti verrà chiesto delle configurazioni del server MariaDB:

  • Premi INVIO quando ti viene chiesto della password root (la configurerai più tardi)
  • Inserisci ‘n’ quando ti viene chiesto di passare all’autenticazione ‘unix_socket’
  • Inserisci ‘Y’ per impostare la password root di MariaDB, quindi digita la tua nuova password e ripeti
  • Inserisci ‘Y’ per rimuovere l’utente anonimo da MariaDB
  • Inserisci ‘Y’ di nuovo per disabilitare il login remoto per l’utente root
  • Inserisci ‘Y’ per rimuovere il database predefinito ‘test’ e i suoi privilegi
  • Inserisci ‘Y’ per ricaricare i privilegi delle tabelle e applicare le tue modifiche

Una volta terminato, vai al passaggio successivo per creare un nuovo database e un utente.

Creazione di un database e di un utente per Moodle

Con il server MariaDB configurato, ora creiamo un nuovo database e un utente che saranno utilizzati da Moodle. Utilizzerai il client ‘mariadb’ per accedere a MariaDB e creare un nuovo database e utente.

Accedi al server MariaDB con il comando ‘mariadb’ qui sotto. Inserisci la tua password root di MariaDB quando richiesto.

sudo mariadb -u root -p

Esegui le seguenti query per creare un nuovo database e un utente ‘moodle’ con la password ‘MoodlePassw0rd’. Assicurati di cambiare le seguenti credenziali del database con le tue informazioni.

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

crea database e utente

Ora esegui la query qui sotto per controllare l’utente ‘moodle’. Assicurati che l’utente ‘moodle’ possa accedere al database ‘moodle’.

SHOW GRANTS FOR moodle@localhost;

Infine, digita ‘QUIT’ per uscire dal server MariaDB.

mostra privilegi database

Configurazione di PHP

Ora che hai configurato il server MariaDB e creato un nuovo utente del database, configuriamo il file ‘php.ini’ e cambiamo alcune configurazioni predefinite come richiesto da Moodle.

Apri il file ‘php.ini’ con l’editor ‘nano’.

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

Cambia la configurazione predefinita di PHP con la seguente. Puoi cambiare il ‘memory_limit’ di conseguenza, a seconda della memoria del tuo server.

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

Quando hai finito, salva il file ed esci dall’editor.

Infine, esegui il comando ‘systemctl’ qui sotto per riavviare il server web ‘apache2’ e applicare la tua nuova configurazione PHP.

sudo systemctl restart apache2

Download del codice sorgente di Moodle

Dopo aver configurato PHP, sei pronto per scaricare il codice sorgente di Moodle, quindi impostare la directory di installazione e la directory ‘data’ per Moodle. In questo esempio, imposterai la directory di installazione di Moodle su ‘/var/www/moodle’ e la directory ‘data’ su ‘/var/www/moodledata’.

Vai alla directory ‘/var/www’ e scarica il codice sorgente di Moodle con il comando ‘wget’ qui sotto.

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

Una volta scaricato, esegui il comando ‘tar’ qui sotto per estrarre il codice sorgente di Moodle e rinominare la directory estratta in ‘moodle’. Con questo, la tua installazione di Moodle sarà situata nella directory ‘/var/www/moodle’.

tar -xf moodle-latest-405.tgz

Successivamente, crea una nuova directory ‘/var/www/moodledata’ che sarà utilizzata come directory dei dati per la tua installazione di Moodle.

mkdir -p /var/www/moodledata

Infine, esegui il comando qui sotto per cambiare la proprietà delle directory ‘/var/www/moodle’ e ‘/var/www/moodledata’ all’utente ‘www-data’. E poi, assicurati che l’utente ‘www-data’ possa leggere, scrivere ed eseguire file all’interno di quelle directory.

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

imposta directory moodle

Impostazione dell’host virtuale Apache

Ora che hai scaricato Moodle, il passaggio successivo è creare un nuovo file di host virtuale Apache per Moodle. Assicurati quindi di avere un nome di dominio risolto/puntato all’indirizzo IP del server.

Crea una nuova configurazione dell’host virtuale ‘/etc/apache2/sites-available/moodle.conf’ con l’editor ‘nano’.

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

Inserisci la configurazione qui sotto per impostare un file di host virtuale per Moodle. Assicurati di cambiare il parametro ‘ServerName’ con il tuo nome di dominio.

  
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  

Salva il file ed esci dall’editor quando hai finito.

Ora esegui il comando ‘a2enmod’ qui sotto per attivare il modulo ‘rewrite’, e poi esegui il comando ‘a2ensite’ qui sotto per attivare l’host virtuale ‘moodle.conf’.

sudo a2enmod rewrite  
sudo a2ensite moodle.conf

Successivamente, esegui il comando ‘apachectl’ qui sotto per verificare la tua configurazione Apache. Se hai una configurazione Apache corretta, vedrai un output come ‘La sintassi è OK’.

sudo apachectl configtest

imposta apache

Infine, esegui il comando ‘systemctl’ qui sotto per riavviare il server web Apache e applicare le tue modifiche.

sudo systemctl restart apache2

Mettere in sicurezza Moodle con HTTPS

A questo punto, la tua installazione di Moodle è pronta. Prima di continuare, metterai in sicurezza Moodle con HTTPS tramite Certbot e Letsencrypt. Fai questo quando installi Moodle su un server pubblico. Se sei in sviluppo locale, puoi saltare o implementare HTTPS tramite certificati autofirmati.

Installa il ‘certbot’ e il plugin ‘python3-certbot-apache’ con il seguente comando ‘apt’. Inserisci ‘Y’ per confermare l’installazione.

sudo apt install certbot python3-certbot-apache

Dopo che l’installazione è completata, esegui il seguente comando ‘certbot’ per generare certificati SSL per Moodle. Assicurati di cambiare il seguente nome di dominio e indirizzo email con il tuo dominio.

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

Quando hai finito, i tuoi certificati SSL saranno disponibili nella directory ‘/etc/letsencrypt/live/domain.com’ e la tua installazione di Moodle sarà in esecuzione sotto HTTPS.

Installazione di Moodle

Apri il tuo browser web e visita il nome di dominio della tua installazione di Moodle come https://moodle.howtoforge.local/, e vedrai la procedura guidata di installazione di Moodle.

Seleziona la tua lingua predefinita per Moodle e fai clic su ‘ Avanti ‘.

seleziona lingua

Inserisci il tuo nome di dominio e la directory dei dati di Moodle in ‘ /var/www/moodledata ‘.

seleziona dominio e directory dei dati

Seleziona ‘ MariaDB ‘ come database predefinito per Moodle.

driver database mariadb

Inserisci i dettagli del tuo database MariaDB come dbname, dbuser e password.

configurazione mariadb

Fai clic su ‘ Continua ‘ sulla nota di copyright.

copyright

Nella sezione ‘Controlli del server’, assicurati che il tuo server Debian soddisfi i requisiti di Moodle. Lo stato di ogni elemento dovrebbe essere ‘ OK ‘.

controlli di sistema

Ora vedrai l’installazione di Moodle come segue:

installazione moodle

Una volta completata l’installazione, inserisci i tuoi dettagli di amministratore (nome utente, email e password).

utente admin

Ora inserisci le informazioni del tuo sito Moodle.

info sito moodle

Infine, vedrai il seguente cruscotto di amministrazione di Moodle.

cruscotto

Conclusione

Congratulazioni! Hai completato l’installazione del sistema di gestione dell’apprendimento Moodle (LMS) sul server Debian 12. Hai Moodle in esecuzione con il LAMP Stack (Linux, Apache, MariaDB e PHP) e messo in sicurezza con UFW (Uncomplicated Firewall) e HTTPS tramite Certbot e Letsencrypt. Da qui, puoi applicare un nuovo tema per Moodle, installare nuovi addon per estendere la funzionalità, oppure puoi consultare la Guida per l’utente di Moodle per gestire la tua installazione di Moodle.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.