Installéiert RainLoop Webmail (E Web Based Email Client) mat Nginx an Apache am Arch Linux


Rainloop ass eng gratis Open Source Webapplikatioun geschriwwen a PHP déi e schnelle modernen Webinterface ubitt fir Zougang zu Ären E-Mailen op all gréisser Domain Mail Ubidder wéi Yahoo, Gmail, Outlook a vill anerer wéi och Ären eegene lokale Mailserver, an och, fungéiert als MUA (Mail User Agent) andeems Dir Zougang zu Domain Mail Server iwwer IMAP a SMTP Protokoller kritt.

Kuckt Iech séier op d'Demo Säit Konfiguratioun vum Auteur op http://demo.rainloop.net/.

Wann Dir Rainloop op Äre Server ofgesat hutt, ass dat eenzegt wat nach ze maachen ass, Zougang zu Ärem Rainloop Domain duerch e Webbrowser ze kréien an Umeldungsinformatiounen fir Ären aktivéierten Domain Mail Server ze bidden.

Dësen Tutorial behandelt Rainloop Webmail Installatiounsprozess op Arch Linux vu béide Siicht Konfiguratiounsdateien fir Apache an Nginx, mat engem virtuelle lokale Domain konfiguréiert duerch lokal Hostdatei, ouni en DNS Server.

Wann Dir och Referenze braucht fir Rainloop op Debian a Red Hat Systemer z'installéieren, besicht de fréiere RainLoop Webmail Artikel op.

  1. Installéiert RainLoop Webmail op Debian a Red Hat baséiert Systemer

  1. Installéiert LEMP (Nginx, PHP, MySQL mat MariaDB Engine a PhpMyAdmin) an Arch Linux
  2. Erstellt virtuelle Hosten am Nginx Webserver

  1. LAMP installéieren (Linux, Apache, MySQL/MariaDB, a PHP/PhpMyAdmin) an Arch Linux

Schrëtt 1: Erstellt Virtuell Hosts fir Nginx oder Apache

1. Unzehuelen datt Dir Är Serveren (Nginx oder Apache) konfiguréiert hutt wéi an ieweschte Presentatiounslinks beschriwwen, ass dat éischt wat Dir maache musst ass eng rudimentär ze kreéieren. DNS Entrée op lokalen Host Datei déi op Arch Linux System IP weist.

Am Linux System editéiert /etc/hosts Datei an enthält Äre Rainloop virtuelle Domain nom Localhost Entrée.

127.0.0.1	localhost.localdomain  localhost     rainloop.lan
192.168.1.33	rainloop.lan

Am Windows System ännert C:\Windows\System32\drivers tc\hosts a füügt déi folgend Zeil um ënnen.

192.168.1.33       rainloop.lan

2. Nodeems Dir de lokalen Domain mam Kommando ping verifizéiert hutt, erstellt déi néideg Virtual Hosts an SSL Konfiguratiounen fir Apache oder Nginx.

Erstellt e Fichier mam Numm rainloop.lan am /etc/nginx/sites-available/ Wee mat der folgender Konfiguratioun.

$ sudo nano /etc/nginx/sites-available/rainloop.conf

Füügt de folgenden Dateiinhalt.

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;
    }
 }

Erstellt dann den SSL gläichwäertege Dateiinhalt.

$ sudo nano /etc/nginx/sites-available/rainloop-ssl.conf

Füügt de folgenden Dateiinhalt.

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;
    }
 }

Op de nächste Schrëtt generéiert Zertifikat Datei an Schlësselen fir SSL Virtual Host a füügt Äre virtuelle Domainnumm derbäi (rainloop.lan >) op Zertifikat Gemeinsamen Numm.

$ sudo nginx_gen_ssl.sh

Nodeems d'Zertifikat an d'SSL-Schlëssel generéiert sinn, erstellt de Rainloop root Webserver-Dateiwee (Plaz wou Rainloop PHP-Dateien wunnen), aktivéiert dann Virtuell Hosts an nei start den Nginx-Daemon fir Konfiguratiounen z'applizéieren.

$ sudo mkdir -p /srv/www/rainloop
$ sudo n2ensite rainloop
$ sudo n2ensite rainloop-ssl
$ sudo systemctl restart nginx

Erstellt eng nei Datei mam Numm rainloop.conf an /etc/httpd/conf/sites-available/ mat dem folgenden Inhalt.

$ sudo nano /etc/httpd/conf/sites-available/rainloop.conf

Füügt de folgenden Dateiinhalt.

<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>

Erstellt dann den SSL gläichwäertege Dateiinhalt fir Apache.

$ sudo nano /etc/httpd/conf/sites-available/rainloop-ssl.conf

Füügt de folgenden Dateiinhalt.

<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>

De nächste Schrëtt ass SSL Certificate Datei an Keys fir SSL Virtual Host ze kreéieren an Äre virtuellen Domain Numm derbäi ze setzen (rainloop.lan ) op Zertifikat Gemeinsamen Numm.

$ sudo apache_gen_ssl

Nodeems d'Zertifikat an d'SSL-Schlëssel erstallt sinn, füügt de Rainloop DocumentRoot-Wee derbäi, aktivéiert dann Virtuell Hosts an nei start den Apache-Daemon fir Konfiguratiounen z'applizéieren.

$ sudo mkdir -p /srv/www/rainloop
$ sudo a2ensite rainloop
$ sudo a2ensite rainloop-ssl
$ sudo systemctl restart httpd

Schrëtt 2: Füügt néideg PHP-Extensiounen

3. Egal ob Dir Apache oder Nginx Webserver benotzt, musst Dir déi folgend PHP Extensiounen op php.ini Datei aktivéieren an och enthalen den neie Webserver DocumentRoot Wee op open_basedir Direktiv.

$ sudo nano /etc/php/php.ini

Situéiert an decommentéieren déi folgend PHP Extensiounen.

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

Och open_basedir Ausso soll esou ausgesinn.

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/

4. Nodeems d'Datei php.ini geännert gouf, start Äre Server nei a kontrolléiert phpinfo Datei fir ze kucken ob SSL Protokoller aktivéiert sinn.

----------On Apache Web Server----------
$ sudo systemctl restart httpd
----------On Nginx Web Server----------
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm

Schrëtt 3: Eroflueden an installéieren RainLoop Webmail

5. Elo ass et Zäit fir d'Rainloop Applikatioun vun der offizieller Websäit op d'Dokument Root Verzeechnes erofzelueden an ze extrahieren, awer éischt installéieren wget an unzip System Utilities.

$ sudo pacman -S unzip wget

6. Luet d'läscht Quellpaket Rainloop Zip Archiv mat wget Kommando oder andeems Dir e Browser benotzt fir op http://rainloop.net/downloads/ ze navigéieren.

$ wget http://repository.rainloop.net/v1/rainloop-latest.zip

7. Nodeems den Downloadprozess fäerdeg ass, Extrait Rainloop Archiv op Virtual Host Document Root Wee (/srv/www/rainloop/).

$ sudo unzip rainloop-latest.zip -d  /srv/www/rainloop/

8. Dann setzen déi folgend Permissiounen op Applikatioun Default Wee.

$ sudo chmod -R 755 /srv/www/rainloop/
$ sudo chown -R http:http /srv/www/rainloop/

Schrëtt 4: Rainloop via Web Interface konfiguréieren

9. Rainloop Applikatioun kann an zwou Manéieren konfiguréiert ginn: mat engem System Réibau vun via Browser. Wann Dir wëllt iwwer den Terminal konfiguréieren, oppen an änneren application.ini Datei an /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.

10. Fir Zougang zu Admin Interface vum Browser ze benotzen, benotzt déi folgend URL Adress https://rainloop.lan/?admin, gitt dann d'Standardapplikatiouns-Umeldungsinformatiounen.

User= admin
Password= 12345

11. Nom éischte Login wäert Dir gewarnt ginn fir de Standardpasswuert z'änneren, also roden ech Iech et ze maachen.

12. Wann Dir wëllt Kontakter Login op MySQL Datebank aktivéieren an eng nei Datebank mat engem privilegiéierten Benotzer op et erstellen, da gitt Datebank Umeldungsinformatiounen op Kontakter Felder.

mysql -u root -p
create database if not exists rainloop;
create user [email  identified by “password”;
grant all privileges on rainloop.* to [email ;
flush privileges;
exit;

13. Par défaut bitt Rainloop Gmail, Yahoo an Outlook Domains Mail Server Konfiguratiounsdateien, awer Dir kënnt aner Mail Server Domainen addéieren wann Dir wëllt.

14. Fir Iech op Äre Mail-Server anzeloggen, gitt Äre Browser op https://rainloop.lan a gitt Är Domain Server Umeldungsinformatiounen.

Fir weider Konfiguratiounen besicht w.e.g. offiziell Rainloop Dokumentatiounssäit op http://rainloop.net/docs/.

Mat Rainloop kënnt Dir Zougang zu Mail-Server vun all Apparat hunn, deen e Browser huet soulaang Äre Server Internetverbindung huet, deen eenzege Minus fir d'Rainloop Applikatioun am Arch Linux bis elo ze benotzen ass de Mangel u poppassd Plugin Package néideg E-Mail Kont Passwuert änneren.