Installazione Rainloop · 9 min read · Sep 08, 2025
Come installare Rainloop Webmail su Ubuntu 22.04

Rainloop è un client email open-source basato sul web scritto in PHP. È veloce, leggero e supporta i protocolli SMTP e IMAP.
Questa guida ti insegnerà a installare il client Rainloop su un server Ubuntu 22.04.
Prerequisiti
- Un server che esegue Ubuntu 22.04.
- Un nome di dominio che punta al server. Per il nostro tutorial, utilizzeremo il dominio
rainloop.example.com. - Un utente non root con privilegi sudo.
- Assicurati che tutto sia aggiornato.
$ sudo apt update && sudo apt upgrade - Installa i pacchetti di utilità di base. Alcuni di essi potrebbero già essere installati.
$ sudo apt install wget curl nano unzip -y
Passo 1 - Configura il Firewall
Il primo passo prima di installare Rainloop è configurare il firewall. Controlla lo stato del firewall.
$ sudo ufw status
Dovresti vedere qualcosa di simile a quanto segue.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Rainloop ha bisogno delle porte HTTP e HTTPS per funzionare.
$ sudo ufw allow http
$ sudo ufw allow https
Apri le porte per gli account email che utilizzi.
$ sudo ufw allow 587/tcp
$ sudo ufw allow 993/tcp
$ sudo ufw allow 465/tcp
Controlla di nuovo lo stato per confermare.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
587/tcp ALLOW Anywhere
993/tcp ALLOW Anywhere
465/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
587/tcp (v6) ALLOW Anywhere (v6)
993/tcp (v6) ALLOW Anywhere (v6)
465/tcp (v6) ALLOW Anywhere (v6)
Passo 2 - Installa Nginx
Ubuntu 22.04 viene fornito con una versione più vecchia di Nginx. Per installare l’ultima versione, devi scaricare il repository ufficiale di Nginx.
Importa la chiave di firma di Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Aggiungi il repository per la versione stabile di Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Aggiorna i repository di sistema.
$ sudo apt update
Installa Nginx.
$ sudo apt install nginx
Verifica l’installazione.
$ nginx -v
nginx version: nginx/1.22.0
Passo 3 - Installa e Configura PHP
Ubuntu 22.04 viene fornito con PHP 8.1 per impostazione predefinita. Ma affinché Rainloop funzioni, dobbiamo installare PHP 8.0. Il primo passo è aggiungere il repository PHP di Ondrej.
$ sudo add-apt-repository ppa:ondrej/php
Installa PHP e le estensioni richieste da Rainloop.
$ sudo dnf install php8.0-fpm php8.0-curl php8.0-mbstring php8.0-mysql php8.0-xml php8.0-cli
Verifica l’installazione.
$ php --version
PHP 8.0.20 (cli) (built: Jun 25 2022 08:12:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.20, Copyright (c) Zend Technologies
with Zend OPcache v8.0.20, Copyright (c), by Zend Technologies
Controlla lo stato del servizio PHP.
$ sudo systemctl status php8.0-fpm
? php8.0-fpm.service - The PHP 8.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.0-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-07-04 01:52:55 UTC; 1min 22s ago
Docs: man:php-fpm8.0(8)
Process: 12463 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.0/fpm/pool.d/www.conf 80 (code=exited, status=0/SUCCESS)
Main PID: 12460 (php-fpm8.0)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 2241)
Memory: 8.7M
CPU: 89ms
CGroup: /system.slice/php8.0-fpm.service
??12460 "php-fpm: master process (/etc/php/8.0/fpm/php-fpm.conf)
Apri il file php.ini per la modifica.
$ sudo nano /etc/php/8.0/fpm/php.ini
Cambia i valori delle seguenti variabili per impostare la dimensione massima degli allegati email a 25MB.
upload_max_filesize = 25M
post_max_size = 25M
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Apri il file /etc/php/8.0/fpm/pool.d/www.conf.
$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf
Trova le righe user=apache e group=apache nel file e cambiale come segue.
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...
Inoltre, trova le righe listen.owner = www-data e listen.group = www-data e cambiale come segue.
...
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
...
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Riavvia il servizio PHP-FPM.
$ sudo systemctl restart php8.0-fpm
Passo 4 - Installa MySQL
Ubuntu 22.04 viene fornito con l’ultima versione di MySQL. Puoi installarlo con un solo comando.
$ sudo apt install mysql-server
Controlla la versione di MySQL.
$ mysql --version
mysql Ver 8.0.29-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
Questo passaggio è necessario per le versioni di MySQL 8.0.28 e superiori. Entra nella shell di MySQL.
$ sudo mysql
Esegui il seguente comando per impostare la password per il tuo utente root. Assicurati che contenga una combinazione di numeri, lettere maiuscole, minuscole e caratteri speciali.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
Esci dalla shell.
mysql> exit
Esegui lo script di installazione sicura di MySQL.
$ sudo mysql_secure_installation
Per prima cosa, ti verrà chiesta la password di root. Inseriscila. Successivamente, ti verrà chiesto di installare il componente di validazione della password. Controlla la forza delle password utilizzate in MySQL. Premi Y per installarlo.
Successivamente, ti verrà chiesto di impostare il livello della politica di validazione della password. Scegli 2 poiché è il più forte.
Successivamente, premi N per rifiutare di cambiare la tua password di root. Inoltre, premi Y per rimuovere gli utenti anonimi, vietare gli accessi remoti come root, rimuovere il database di test e ricaricare le tabelle dei privilegi.
Passo 5 - Configura MySQL
Accedi alla shell di MySQL. Inserisci la tua password di root quando richiesto.
$ sudo mysql -u root -p
Crea un database per Rainloop.
mysql> CREATE DATABASE rainloop;
Crea un utente SQL per accedere al database. Sostituisci yourpassword con una password a tua scelta.
mysql> CREATE USER 'rainuser'@'localhost' IDENTIFIED BY 'YourPassword23!';
Concedi a rainuser l’accesso al database.
mysql> GRANT ALL ON rainloop.* TO 'rainuser'@'localhost';
Ricarica la tabella dei privilegi.
mysql> FLUSH PRIVILEGES;
Esci dalla shell.
mysql> exit
Passo 6 - Installa Rainloop
Crea la directory pubblica per Rainloop.
$ sudo mkdir /var/www/html/rainloop -p
Scarica l’ultima versione di Rainloop.
$ wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip
Decomprimi il file scaricato nella directory pubblica.
$ sudo unzip rainloop-community-latest.zip -d /var/www/html/rainloop
Cambia la proprietà della directory a Nginx.
$ sudo chown -R nginx:nginx /var/www/html/rainloop
Imposta i permessi di lettura e scrittura richiesti da Rainloop.
$ sudo find /var/www/html/rainloop -type d -exec chmod 755 {} \;
$ sudo find /var/www/html/rainloop -type f -exec chmod 644 {} \;
Passo 7 - Installa SSL
Dobbiamo installare Certbot per generare certificati SSL gratuiti offerti da Let’s Encrypt.
Puoi installare Certbot utilizzando il repository di Ubuntu o scaricare l’ultima versione utilizzando lo strumento Snapd. Utilizzeremo la versione Snapd.
Ubuntu 22.04 viene fornito con Snapd installato per impostazione predefinita. Esegui il seguente comando per assicurarti che la tua versione di Snapd sia aggiornata.
$ sudo snap install core
Installa Certbot.
$ sudo snap install --classic certbot
Usa il seguente comando per assicurarti che il comando Certbot possa essere eseguito creando un collegamento simbolico alla directory /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Genera un certificato SSL per Rainloop.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d rainloop.example.com
Genera un certificato per il gruppo Diffie-Hellman.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Apri il file /etc/letsencrypt/renewal/rainloop.example.com.conf per la modifica.
$ sudo nano /etc/letsencrypt/renewal/rainloop.example.com.conf
Incolla il seguente codice in fondo.
pre_hook = systemctl stop nginx
post_hook = systemctl start nginx
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Abbiamo generato il certificato SSL utilizzando l’opzione standalone di Certbot. Esegue il proprio server web per creare il certificato, il che significa che Nginx dovrebbe essere spento durante il rinnovo. I comandi pre_hook e post_hook vengono eseguiti prima e dopo il rinnovo per spegnere e riavviare automaticamente il server Nginx, richiedendo quindi nessun intervento manuale.
Per controllare se il rinnovo SSL funziona correttamente, esegui un test del processo.
$ sudo certbot renew --dry-run
Se non vedi errori, sei a posto. Il tuo certificato si rinnoverà automaticamente.
Passo 8 - Configura Nginx
Apri il file nginx.conf per la modifica.
$ sudo nano /etc/nginx/nginx.conf
Trova la riga include /etc/nginx/conf.d/*.conf; e incolla il seguente codice sotto di essa.
server_names_hash_bucket_size 64;
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Crea il file di configurazione di Rainloop per Nginx e aprilo per la modifica.
$ sudo nano /etc/nginx/conf.d/rainloop.conf
Incolla il seguente codice in esso.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name rainloop.example.com;
root /var/www/html/rainloop;
index index.php;
client_max_body_size 25M;
access_log /var/log/nginx/rainloop.access.log;
error_log /var/log/nginx/rainloop.error.log;
ssl_certificate /etc/letsencrypt/live/rainloop.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/rainloop.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/rainloop.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_keep_conn on;
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ \.ht {
deny all;
}
location ^~ /data {
deny all;
}
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name rainloop.example.com;
return 301 https://$host$request_uri;
}
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Verifica la sintassi della configurazione di Nginx.
$ sudo nginx -t
Riavvia il servizio Nginx.
$ sudo systemctl restart nginx
Passo 9 - Configura e Accedi a Rainloop
Apri la pagina di amministrazione di Rainloop tramite l’URL https://rainloop.example.com/?admin e vedrai la seguente schermata di accesso.

Inserisci le seguenti credenziali e premi invio per accedere.
Username: admin
Password: 12345
Il cruscotto dell’amministratore di Rainloop si aprirà con un avviso per cambiare la tua password predefinita.

Cambia la password predefinita utilizzando il link nel cruscotto.

Inserisci la tua nuova password e fai clic sul pulsante Aggiorna Password per procedere.
Rainloop utilizza MySQL per memorizzare le informazioni di contatto. Apri la pagina Contatti e seleziona MySQL dal menu a discesa.

Inserisci le credenziali del database create in precedenza.

Premi il pulsante Test per controllare la connessione e installare le tabelle. Se il pulsante diventa verde, significa che la connessione è riuscita.
Puoi iniziare a utilizzare Rainloop aggiungendo i tuoi account email.
Conclusione
Hai installato con successo Rainloop su un server Ubuntu 22.04. Se hai domande, postale nei commenti qui sotto.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.