Moodle (acronimo di Modular Object-Oriented Dynamic Learning Environment, ambiente per l’apprendimento modulare, dinamico, orientato ad oggetti) è un ambiente informatico per la gestione di corsi, ispirato al costruzionismo, teoria secondo la quale ogni apprendimento sarebbe facilitato dalla produzione di oggetti tangibili.
Il suo software è scritto in PHP e JavaScript; è open source e modulare, permettendo quindi a qualunque gruppo di utenti di sviluppare funzionalità aggiuntive personalizzate.
PREREQUISITI
Installazione e accesso SSH ad un server Ubuntu 22.04
Creazione di un utente non root con privilegi di sudo
Un nome di dominio completo che punta al tuo server, come moodle.dominio.com
AGGIORNAMENTO UBUNTU 22.04
Iniziare con l’aggiornamento del sistema per installare gli ultimi aggiornamenti disponibili e aggiornare la cache dell’indice del pacchetto APT.
0 |
sudo apt update
|
INSTALLAZIONE DI NGINX
Installare Nginx con il comando:
0 |
sudo apt install nginx-full
|
INSTALLAZIONE E CONFIGURAZIONE DEL PHP
L’ultima versione di Moodle disponibile al momento della stesura del seguente articolo è la 4.0.4+ che richiedere le seguenti
PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x and 8.0.x are supported too. See PHP for details.
PHP extension sodium is recommended. It will be required in Moodle 4.2. For further details, see Environment – PHP extension sodium.
PHP extension exif is recommended.
PHP setting max_input_vars is recommended to be >= 5000 for PHP 7.x installations. It’s a requirement for PHP 8.x installations. For further details, see Environment – max input vars.
Aggiungere il repository extra con i seguenti comandi:
0 |
sudo apt install software-properties-common
|
quindi eseguire il comando:
0 |
sudo add-apt-repository ppa:ondrej/php
|
Installare il PHP con le relative estensioni con il comando:
0 |
sudo apt install php8.0 php8.0-{fpm,common,mbstring,xmlrpc,soap,gd,xml,intl,mysql,cli,mcrypt,ldap,zip,curl}
|
quindi verificare la versione installata con il comando:
0 |
php -v
|
Se è tutto OK dovremmo vedere una schermata come quella sovrastante
Editare il file di configurazione php.ini con il comando:
0 |
sudo nano /etc/php/8.0/fpm/php.ini
|
All’interno del file cercare i seguenti parametri:
0
1
2
3
4
5
|
memory_limit = 128M
upload_max_filesize = 2M
max_execution_time = 30
//also don’t forget to remove the semicolon given in front of max_input_vars.
;max_input_vars = 1000
;date.timezone =
|
ATTENZIONE: ricordare di rimuovere il punto e virgola (;) dagli ultimi due parametri per attivarli
Quindi sostituire i valori originali con i seguenti:
0
1
2
3
4
5
|
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 360
//also don’t forget to remove the semicolon (;) given in front of max_input_vars.
max_input_vars = 5000
date.timezone = Europe/Rome
|
Riavviare il servizio PHP-FPM con il comando:
0 |
sudo service php8.0-fpm restart
|
INSTALLAZIONE E CONFIGURAZIONE DEL DATABASE
Possiamo installare MySQL, tuttavia, qui stiamo usando MariaDB che è uno dei migliori server di database open source.
È disponibile per l’installazione utilizzando il repository di sistema predefinito di Ubuntu 22.04.
Per procedere eseguire il comando:
0 |
sudo apt install mariadb-server
|
Quindi proteggere il database con il comando:
0 |
sudo mysql_secure_installation
|
0
1
2
3
4
5
6
7
|
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
|
Premere INVIO
0
1
2
3
4
5
|
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n]
|
Premere Y
0
1
2
3
4
5
6
7
|
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n]
|
Premere Y
0
1
2
3
4
|
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
|
Inserire due volte la password dell’utente di root
0
1
2
3
4
5
6
|
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n]
|
Premere Y
0
1
2
3
|
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]
|
Premere Y
0
1
2
3
4
|
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n]
|
Premere Y
0
1
2
3
4
5
6
7
8
|
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n]
|
Premere Y
Se è andato tutto a buon fine dovremmo vedere le seguenti righe:
Cleaning up…
All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Accedere al Database con il comando:
0 |
sudo mysql -u root -p
|
NOTA BENE: inserire la password dell’utente di root configurata poco fa
Procedere con la creazione del database con il comando:
0 |
CREATE DATABASE moodledb; |
Creare quindi un utente per l’accesso al database con il comando:
0 |
CREATE USER 'moodleuserdb'@'localhost' IDENTIFIED BY 'PASSWORD'; |
NOTA BENE: Al posto del campo PASSWORD impostare una password complessa
Dare le grant all’utente moodleuserdb con il comando:
G
0 |
RANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodledb.* TO moodleuserdb@localhost; |
Fare il reload dei privilegi con il comando:
0 |
FLUSH PRIVILEGES; |
Uscire con il comando:
0 |
exit |
INSTALLAZIONE DI MOODLE
Moodle non è un pacchetto che possiamo installare utilizzando il gestore di pacchetti APT, ma dobbiamo scaricarlo manualmente.
Le ultime versioni sono disponibili sul sito ufficiale. Puoi scaricarlo direttamente da lì utilizzando il browser o il comando fornito per la versione 4.0.5
Posizionarsi nella cartella Downloads con il comando:
0 |
sudo mkdir /home/moodleuser/Downloads
|
Posizionarsi all’interno della cartella appena creata con il comando:
0 |
cd /home/moodleuser/Downloads
|
Dare i diritti all’utente loggato alla directory creata con il comando:
0 |
sudo chown -R $USER:$USER /home/moodleuser/Downloads
|
Quindi scaricare la versione di Moodle 4.0.5 con il comando:
0 |
sudo wget https://download.moodle.org/download.php/stable400/moodle-4.0.5.tgz
|
Scompattare il pacchetto di installazione con il comando:
0 |
tar -zxvf moodle-*tgz
|
Spostare quindi tutto il contenuto della cartella nella www con il comando:
0 |
sudo mv moodle /var/www/html/
|
Creare una cartella dove archiviare gli uploads di moodle con il comando:
0 |
sudo mkdir /var/www/html/moodledata
|
Quindi assegnare i diritti all’utente www-data con il comando:
0 |
sudo chown www-data /var/www/html/moodledata
|
Impostare l’autorizzazione per i file Moodle spostati, in modo che il server web possa accedervi con i seguenti comandi:
0
1
|
sudo chown -R www-data:www-data /var/www/html/moodle/
sudo chmod -R 755 /var/www/html/moodle/
|
CONFIGURAZIONE DI NGINX
Creare un file di configurazione di Moodle con il comando:
0 |
sudo nano /etc/nginx/sites-available/moodle.conf
|
Quindi incollare le seguenti righe di codice:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
server {
listen 80;
listen [::]:80;
root /var/www/html/moodle;
index index.php index.html index.htm;
server_name DOMINIO.COM www.DOMINIO.COM;
location / {
try_files $uri $uri/ =404;
}
location ~ [^/]\.php(/|$) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
|
ATTENZIONE: sostituire al posto di DOMINIO.COM il nostro dominio
Salvare e chiudere il file di configurazione
Abilitare la configurazione appena creata su Nxinx con il comando:
0 |
sudo ln -s /etc/nginx/sites-available/moodle.conf /etc/nginx/sites-enabled/
|
Verificare che non ci siano errore a livello di Nginx con il comando:
0 |
sudo nginx -t
|
Se è tutto OK dovremmo leggere le seguenti righe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Riavviare Nginx con il comando:
0 |
sudo systemctl restart nginx
|
CONFIGURAZIONE DI MOODLE DA INTERFACCIA WEB
Per accedere alla configurazione via web richiamare da un browser il link:
http://SERVER.DOMINIO.COM
Selezionare il linguaggio di installazione quindi cliccare Next
Verificare che tutto sia corretto quindi cliccare Next
Impostare come Database MariaDB quindi cliccare Next
Inserire tutti i paramentri di connessione al DB creati precedentemente e nello specifico i seguenti:
DATABASE HOST: localhost
DATABASE NAME: moodledb
DATABASE USER: moodleuserdb
DATABASE PASSWORD: PASSWORD
TABLES PREFIX: mdl_
ATTENZIONE: se avete seguito il tutorial lasciando tutto invariato potete inserire i parametri elencati sopra.
Cliccare Next per procedere
Leggere le condizioni quindi cliccare su Continue
Se è tutto OK dovremmo vedere una schermata come quella sovrastante.
ATTENZIONE: ignorare l’errore relativo all’HTTPS
Cliccare su Continue
Attendere qualche istante quindi verificare che le installazioni siano tutte Success come mostrato nell’immagine sovrastante
Cliccare Continue
Nella sezione General inserire la password dell’utente Administrator del Backend Web quindi la mail
Al fondo della pagina di configurazione lasciare tutto invariato nella sezione Additional Names e Optional quindi cliccare Update profile
Nella schermata Installation inserire i seguenti parametri
Full Site Name
Short Name for site
Quindi cliccare Save Changes
Richiamare il link http://SERVER_MOODLE/login/index.php
Dovremmo vedere una schermata come quella sovrastante
Inserire le credenziali di Admin censite in precedenza quindi cliccare Log In
Se è tutto OK dovremmo vedere una schermata come quella sovrastante con tutti i menù per la gestione del portale
Buona personalizzazione…
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
0 Comments