Installa RainLoop Webmail (un client di posta elettronica basato sul Web) utilizzando "Nginx e Apache" in Arch Linux
Rainloop è un'applicazione web open source gratuita scritta in PHP che fornisce un'interfaccia web moderna e veloce per accedere alle tue e-mail su tutti i principali provider di posta di dominio come Yahoo, Gmail, Outlook e molti altri, nonché sui tuoi server di posta locali e, inoltre, funge da MUA (Mail User Agent) accedendo ai server di posta del dominio tramite i protocolli IMAP e SMTP.
Dimostrazione di RainLoop
Dai un rapido sguardo alla configurazione della pagina demo effettuata dall'autore su http://demo.rainloop.net/.
Dopo aver distribuito Rainloop sui tuoi server, l'unica cosa che resta da fare è accedere al tuo dominio Rainloop tramite un browser Web e fornire le credenziali per il server di posta del dominio abilitato.
Questo tutorial copre il processo di installazione della webmail Rainloop su Arch Linux da entrambi i punti di vista, file di configurazione per Apache e Nginx, utilizzando un dominio locale virtuale configurato tramite file host locali, senza un server DNS.
Se hai bisogno di riferimenti anche sull'installazione di Rainloop su sistemi Debian e Red Hat, visita il precedente articolo RainLoop Webmail all'indirizzo.
- Installa RainLoop Webmail su sistemi basati su Debian e Red Hat
Requisiti
Per Nginx
- Installa LEMP (Nginx, PHP, MySQL con motore MariaDB e PhpMyAdmin) in Arch Linux
- Crea host virtuali nel server Web Nginx
Per Apache
- Installa LAMP (Linux, Apache, MySQL/MariaDB e PHP/PhpMyAdmin) in Arch Linux
Passaggio 1: crea host virtuali per Nginx o Apache
1. Supponendo che tu abbia configurato i tuoi server (Nginx o Apache) come descritto nei link delle presentazioni superiori, la prima cosa che devi fare è per creare una rudimentale voce DNS sul file hosts locale che punta all'IP del sistema Arch Linux.
Sul sistema Linux modifica il file /etc/hosts e includi il tuo dominio virtuale Rainloop dopo la voce localhost.
127.0.0.1 localhost.localdomain localhost rainloop.lan
192.168.1.33 rainloop.lan
Sul sistema Windows modifica C:\Windows\System32\drivers\etc\hosts e aggiungi la seguente riga in basso.
192.168.1.33 rainloop.lan
2. Dopo aver verificato il dominio locale utilizzando il comando ping, crea le configurazioni host virtuali e SSL necessarie per Apache o Nginx.
Host virtuali Nginx
Crea un file denominato rainloop.lan nel percorso /etc/nginx/sites-available/ con la seguente configurazione.
sudo nano /etc/nginx/sites-available/rainloop.conf
Aggiungi il seguente contenuto del file.
server {
listen 80;
server_name rainloop.lan;
rewrite ^ https://$server_name$request_uri? permanent;
access_log /var/log/nginx/rainloop.lan.access.log;
error_log /var/log/nginx/rainloop.lan.error.log;
root /srv/www/rainloop/;
# serve static files
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /srv/www/rainloop/;
expires 30d;
}
location / {
index index.html index.htm index.php;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
location ^~ /data {
deny all;
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
Quindi crea il contenuto del file equivalente SSL.
sudo nano /etc/nginx/sites-available/rainloop-ssl.conf
Aggiungi il seguente contenuto del file.
server {
listen 443 ssl;
server_name rainloop.lan;
ssl_certificate /etc/nginx/ssl/rainloop.lan.crt;
ssl_certificate_key /etc/nginx/ssl/rainloop.lan.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/rainloop.lan.access.log;
error_log /var/log/nginx/rainloop.lan.error.log;
root /srv/www/rainloop/;
# serve static files
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /srv/www/rainloop/;
expires 30d;
}
location ^~ /data {
deny all;
}
location / {
index index.html index.htm index.php;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
Nel passaggio successivo genera il file Certificato e le Chiavi per SSL Virtual Host e aggiungi il tuo nome di dominio virtuale (rainloop.lan) sul Nome comune del certificato.
sudo nginx_gen_ssl.sh
Dopo aver generato il certificato e le chiavi SSL, creare il percorso del file del server web root Rainloop (luogo in cui risiedono i file PHP Rainloop), quindi abilitare gli host virtuali e riavviare il demone Nginx per applicare le configurazioni.
sudo mkdir -p /srv/www/rainloop
sudo n2ensite rainloop
sudo n2ensite rainloop-ssl
sudo systemctl restart nginx
Host virtuali Apache
Crea un nuovo file denominato rainloop.conf in /etc/httpd/conf/sites-available/ con il seguente contenuto.
sudo nano /etc/httpd/conf/sites-available/rainloop.conf
Aggiungi il seguente contenuto del file.
<VirtualHost *:80>
ServerName rainloop.lan
DocumentRoot "/srv/www/rainloop/"
ServerAdmin [email
ErrorLog "/var/log/httpd/rainloop-error_log"
TransferLog "/var/log/httpd/rainloop-access_log"
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
Quindi crea il contenuto del file equivalente SSL per Apache.
sudo nano /etc/httpd/conf/sites-available/rainloop-ssl.conf
Aggiungi il seguente contenuto del file.
<VirtualHost *:443>
ServerName rainloop.lan
DocumentRoot "/srv/www/rainloop/"
ServerAdmin [email
ErrorLog "/var/log/httpd/rainloop-ssl-error_log"
TransferLog "/var/log/httpd/rainloop-ssl-access_log"
SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/rainloop.lan.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/rainloop.lan.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
Il passaggio successivo è creare il file certificato SSL e le chiavi per host virtuale SSL e aggiungere il nome del dominio virtuale (rainloop.lan ) sul Nome comune del certificato.
sudo apache_gen_ssl
Dopo aver creato il certificato e le chiavi SSL, aggiungi il percorso DocumentRoot Rainloop, quindi abilita gli host virtuali e riavvia il demone Apache per applicare le configurazioni.
sudo mkdir -p /srv/www/rainloop
sudo a2ensite rainloop
sudo a2ensite rainloop-ssl
sudo systemctl restart httpd
Passaggio 2: aggiungi le estensioni PHP necessarie
3. Che tu stia utilizzando il server web Apache o Nginx, devi abilitare le seguenti estensioni PHP su php.ini file e includere anche il nuovo percorso DocumentRoot del server web alla direttiva open_basedir.
sudo nano /etc/php/php.ini
Individua e rimuovi il commento dalle seguenti estensioni PHP.
extension=iconv.so
extension=imap.so
extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so ( enables IMAPS and SMTP SSL protocols on mail servers)
extension=pdo_mysql.so
Anche l'istruzione open_basedir dovrebbe assomigliare a questa.
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/
4. Dopo che il file php.ini è stato modificato, riavvia il server quindi controlla il file phpinfo per vedere se i protocolli SSL sono abilitati.
----------On Apache Web Server----------
sudo systemctl restart httpd
----------On Nginx Web Server----------
sudo systemctl restart nginx
sudo systemctl restart php-fpm
Passaggio 3: scarica e installa RainLoop Webmail
5. Ora è il momento di scaricare ed estrarre l'applicazione Rainloop dal sito Web ufficiale nella directory Document Root, ma prima installa wget e decomprimi le utilità di sistema.
sudo pacman -S unzip wget
6. Scarica l'archivio zip Rainloop del pacchetto sorgente più recente utilizzando il comando wget o utilizzando un browser per accedere a http://rainloop.net/downloads/.
wget http://repository.rainloop.net/v1/rainloop-latest.zip
7. Al termine del processo di download, estrarre l'archivio Rainloop nel percorso radice del documento dell'host virtuale ( /srv/www/rainloop/).
sudo unzip rainloop-latest.zip -d /srv/www/rainloop/
8. Quindi imposta le seguenti autorizzazioni sul percorso predefinito dell'applicazione.
sudo chmod -R 755 /srv/www/rainloop/
sudo chown -R http:http /srv/www/rainloop/
Passaggio 4: configurare Rainloop tramite interfaccia Web
9. L'applicazione Rainloop può essere configurata in due modi: utilizzando una shell di sistema o tramite browser. Se desideri configurare tramite terminale, apri e modifica il file application.ini che si trova in /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.
10. Per accedere all'interfaccia di amministrazione dal browser, utilizzare il seguente indirizzo URL https://rainloop.lan/?admin, quindi fornire le credenziali dell'applicazione predefinite.
User= admin
Password= 12345
11. Dopo il login iniziale ti verrà richiesto di modificare la password predefinita, quindi ti consiglio di farlo.
12. Se desideri abilitare l'accesso dei contatti al database MySQL e creare un nuovo database con un utente privilegiato, fornisci le credenziali del database in Contatti campi.
mysql -u root -p
create database if not exists rainloop;
create user rainloop_user@localhost identified by “password”;
grant all privileges on rainloop.* to rainloop_user@localhost;
flush privileges;
exit;
13. Per impostazione predefinita Rainloop fornisce i file di configurazione del server di posta dei domini Gmail, Yahoo e Outlook, ma è possibile aggiungerne altri domini del server di posta, se lo desideri.
14. Per accedere al tuo server di posta, punta il browser su https://rainloop.lan e fornisci le credenziali del server di dominio.
Per ulteriori configurazioni, visitare la pagina della documentazione ufficiale di Rainloop all'indirizzo http://rainloop.net/docs/.
Con Rainloop puoi accedere ai server di posta da qualsiasi dispositivo dotato di browser purché il tuo server abbia connettività Internet, l'unico svantaggio dell'utilizzo dell'applicazione Rainloop in Arch Linux finora è la mancanza del pacchetto plugin poppassd necessario per modificare la password dell'account e-mail.