Ricerca nel sito web

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.

  1. Installa RainLoop Webmail su sistemi basati su Debian e Red Hat

Requisiti

Per Nginx
  1. Installa LEMP (Nginx, PHP, MySQL con motore MariaDB e PhpMyAdmin) in Arch Linux
  2. Crea host virtuali nel server Web Nginx
Per Apache
  1. 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.