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
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
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 apache2Puoi vedere qui sotto che il server web Apache è in esecuzione e abilitato.

Ora controlla il servizio ‘mariadb’ eseguendo il seguente comando.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbNell’output qui sotto, puoi vedere che il server MariaDB è in esecuzione.

Infine, controlla la versione di PHP e l’elenco dei moduli abilitati utilizzando il comando qui sotto.
php -v
php -mVedrai che PHP 8.2 è installato con alcuni moduli predefiniti come ‘curl’, ‘exif’ e ‘date’ abilitati.

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
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/tcpOra 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 enableInfine, 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
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.cnfInserisci 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 = 1Salva 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 mariadbDopo di che, esegui il comando ‘mariadb-secure-installation’ qui sotto per mettere in sicurezza la tua installazione del server MariaDB.
sudo mariadb-secure-installationCon 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 -pEsegui 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;
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.

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.iniCambia 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 = 5000Quando 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 apache2Download 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.tgzUna 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.tgzSuccessivamente, crea una nuova directory ‘/var/www/moodledata’ che sarà utilizzata come directory dei dati per la tua installazione di Moodle.
mkdir -p /var/www/moodledataInfine, 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
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.confInserisci 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.confSuccessivamente, 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
Infine, esegui il comando ‘systemctl’ qui sotto per riavviare il server web Apache e applicare le tue modifiche.
sudo systemctl restart apache2Mettere 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-apacheDopo 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.localQuando 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 ‘.

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

Seleziona ‘ MariaDB ‘ come database predefinito per Moodle.

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

Fai clic su ‘ Continua ‘ sulla nota di 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 ‘.

Ora vedrai l’installazione di Moodle come segue:

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

Ora inserisci le informazioni del tuo sito Moodle.

Infine, vedrai il seguente cruscotto di amministrazione di Moodle.

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.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.