linux sysadmin installs moodle lms on ubuntu server

Come installare Moodle sul server Ubuntu 22.04 | 20.04

Moodle is one of the best learning management systems available. It’s an open software, released under the open source ‘GNU General Public License’ which makes it highly flexible and customizable. In this guide you will learn how to install Moodle on Ubuntu server 20.04/22.04.

We are installing Moodle on a brand new, clean Ubuntu server with no software or data on it. If your server has data on it - make data backup first. Author is not responsible for possible data loss.

Prima di iniziare

Dai un'occhiata al nostro servizio di hosting per Moodle edizione comunitaria. Puoi iniziare a utilizzare LMS senza bisogno di installarlo!

Prerequisiti

  • Installa un Server VPS con Ubuntu 22.04 su di esso
  • Ottieni un certificato completo nome di dominio pointing to your server’s IP address, such as “moodle.example.org”

Per gli esempi in questa guida utilizzeremo domain moodle.esempio.org, cambialo con il tuo nome di dominio.

Preparazione del server Ubuntu per l'installazione di Moodle

Aggiorna il sistema

First thing first – updating the system. To get started connect to your server via SSH. Then run “apt update” and “apt upgrade” commands to update system packages to the latest version.

$ sudo apt update && apt upgrade -y

executing apt update and apt upgrade commands to update Ubuntu server before proceed to moodle installation

Installa Apache, PHP-8.1, MariaDB MySQL server

Successivamente installa le dipendenze di Moodle. Dobbiamo installare il server web Apache, PHP 8.1, il server SQL MariaDB, il server di posta e un elenco di estensioni PHP richieste da Moodle.

$ sudo apt install apache2 php8.1 mariadb-server postfix 
$ sudo apt install php8.1-mysql php8.1-fpm php8.1-iconv php8.1-mbstring php8.1-curl php8.1-tokenizer php8.1-xmlrpc php8.1-soap php8.1-ctype php8.1-zip php8.1-gd php8.1-simplexml php8.1-xml php8.1-intl

Una volta completata l'installazione, avviare il server Web Apache.

$ sudo systemctl start apache2 
$ sudo systemctl enable apache2

Configura Apache VirtualHost e PHP-FPM

Eseguiremo Moodle 4.2 su Apache e PHP-FPM. Nel passaggio successivo configureremo PHP-FPM per Apache.

1. Avvia il servizio PHP-FPM e abilitalo all'avvio.

$ sudo systemctl start php8.1-fpm
$ sudo systemctl enable php8.1-fpm

2. Per utilizzare PHP-FPM con Apache dobbiamo abilitare proxy_fcgi e i moduli proxy.

sudo a2enmod proxy_fcgi proxy

3. Crea il file di configurazione di Apache per Moodle.

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

Inserisci la seguente configurazione nel file moodle.conf. Sostituisci NomeServer, DocumentRoot, Directory con i tuoi valori

<VirtualHost *:80>
ServerName moodle.esempio.org
ServerAlias www.moodle.esempio.org
DocumentRoot /home/moodle/public_html

<Directory /home/moodle/public_html>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>

<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/"
</FilesMatch>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Salva e chiudi il file con CTRL X, quindi Y, quindi Invio.

4. Abilita il nuovo host virtuale e ricarica il server web Apache.

$ a2ensite moodle
$ systemctl reload apache2

5. Also it’s nice to have a rewrite and SSL modules enabled

# a2enmod rewrite
# a2enmod ssl
# systemctl restart apache2

Creare un database e un utente del database

1. Avviare e abilitare il server SQL MariaDB

root@moodle-lms-install:~# systemctl start mariadb 
root@moodle-lms-install:~# systemctl enable mariadb

2. Creare utente e database MySQL

root@moodle-lms-install:~# mysql
MariaDB [(none)]> create database moodle_dev;
MariaDB [(none)]> grant all privileges on moodle_dev.* to moodle_user@localhost identified by 'Change_to_Strong_SQL_Password';
MariaDB [(none)]> flush privileges;

Una volta configurati Apache, PHP e MySQL possiamo procedere con l'installazione del codice Moodle.

Installa il codice Moodle

1. Creare una directory home per il sito Moodle e la directory pubblica

$ useradd --create-home -s /bin/sh moodle
$ mkdir -p /home/moodle/public_html
$ chmod 711 /home/moodle

2. Scarica l'ultimo codice Moodle ed estrailo nella directory pubblica.

Puoi scaricare l'ultimo Moodle da https://download.moodle.org/releases/latest/. Get the code and upload it into the public directory. In our case the directory is “/home/moodle/public_html”

Esegui l'installazione nel browser

Prima di procedere a questo passaggio finale devi puntare il tuo nome di dominio all'indirizzo IP del tuo server. Quando il DNS è configurato è possibile eseguire l'installazione di Moodle in un browser.

1. Open your browser and navigate to your Moodle’s site domain/sub-domain. You should see Moodle Installation page.

2. Choose website’s language. We will keep English.

choosing a language of moodle during installation
scelta della lingua di Moodle durante l'installazione

 

3. Conferma i percorsi

Nel passaggio successivo verificare che l'indirizzo web, la directory Moodle e la directory dei dati siano corretti. La directory dei dati mancava nella nostra installazione, quindi l'abbiamo creata in questo passaggio.

# mkdir /home/moodle/moodledata
# chown www-data:www-data /home/moodle/moodledata

confirm web address, moodle directory, data directory

4. Scegli un server di database

Utilizziamo MariaDB per questa guida. Seleziona MariaDB dal menu a discesa.

choose MariaDB from dropdown

5. Immettere le impostazioni del database

Inserisci il nome del database, l'utente del database e la password che abbiamo creato in precedenza.

input database settings

6. Crea il file config.php

After entering database settings and clicking “Next” a config.php file will be generated. Copy content of the file and create “config.php” in the root moodle directory (/home/moodle/public_html in this example).

7. Accetta la licenza

Devi leggere e accettare il contratto di licenza Moodle in questo passaggio.

8. Supera i controlli del server

Most of the checks passed in our installation. We only had to change “max_input_vars” from its default value to 5000.

$ nano /etc/php/8.1/fpm/php.ini
$ systemctl reload php8.1-fpm

fix max_input_vars error during moodle installation

9. Configura il tuo account amministratore principale

In questo passaggio dovresti configurare l'account amministratore. Inserisci il nome utente, la password e gli altri dettagli richiesti dell'amministratore.

10. Immettere le impostazioni iniziali del sito

Configura il nome del sito, il nome breve del sito, il riepilogo della home page del sito e altre informazioni.

 

configure moodle site settings

Crea il tuo primo corso!

After few final clicks you will see the LMS dashboard and Calendar. Proceed to “My Courses” tab and create your first Moodle course! Well done!

my courses tab in fresh installed moodle site