Zoeken op website

Installeer RainLoop Webmail (een webgebaseerde e-mailclient) met behulp van 'Nginx en Apache' in Arch Linux


Rainloop is een gratis Open Source-webapplicatie geschreven in PHP die een snelle, moderne webinterface biedt voor toegang tot uw e-mails op alle grote domeinmailproviders zoals Yahoo, Gmail, Outlook en vele anderen, evenals uw eigen lokale mailservers, en ook fungeert als een MUA (Mail User Agent) door toegang te krijgen tot domeinmailservers via IMAP- en SMTP-protocollen.

RainLoop-demo

Kijk snel naar de demopagina-opstelling door de auteur op http://demo.rainloop.net/.

Zodra u Rainloop op uw servers heeft geïmplementeerd, hoeft u alleen nog maar via een webbrowser toegang te krijgen tot uw Rainloop-domein en inloggegevens op te geven voor uw ingeschakelde domeinmailserver.

Deze tutorial behandelt het Rainloop webmailinstallatieproces op Arch Linux vanuit beide oogpunten, configuratiebestanden voor Apache en Nginx, met behulp van een virtueel lokaal domein geconfigureerd via een lokaal hosts-bestand, zonder een DNS-server.

Als u ook referenties nodig heeft over het installeren van Rainloop op Debian en Red Hat systemen, bezoek dan het vorige RainLoop Webmail-artikel op.

  1. Installeer RainLoop Webmail op op Debian en Red Hat gebaseerde systemen

Vereisten

Voor Nginx
  1. Installeer LEMP (Nginx, PHP, MySQL met MariaDB-engine en PhpMyAdmin) in Arch Linux
  2. Creëer virtuele hosts in Nginx Web Server
Voor Apache
  1. Installeer LAMP (Linux, Apache, MySQL/MariaDB en PHP/PhpMyAdmin) in Arch Linux

Stap 1: Creëer virtuele hosts voor Nginx of Apache

1. Ervan uitgaande dat u uw servers (Nginx of Apache) heeft geconfigureerd zoals beschreven in de bovenste presentatielinks, is het eerste dat u hoeft te doen om een rudimentair DNS-item te maken op het lokale hosts-bestand dat verwijst naar het Arch Linux-systeem-IP.

Bewerk op een Linux-systeem het bestand /etc/hosts en voeg uw virtuele Rainloop-domein toe na invoer van localhost.

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

Bewerk op een Windows-systeem C:\Windows\System32\drivers\etc\hosts en voeg onderaan de volgende regel toe.

192.168.1.33       rainloop.lan

2. Nadat u het lokale domein heeft geverifieerd met de ping-opdracht, maakt u de benodigde Virtuele Hosts en SSL-configuraties voor Apache of Nginx.

Nginx virtuele hosts

Maak een bestand met de naam rainloop.lan in het pad /etc/nginx/sites-available/ met de volgende configuratie.

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

Voeg de volgende bestandsinhoud toe.

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

Maak vervolgens de SSL-equivalente bestandsinhoud.

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

Voeg de volgende bestandsinhoud toe.

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

Genereer bij de volgende stap een certificaat bestand en sleutels voor SSL Virtual Host en voeg uw virtuele domeinnaam toe (rainloop.lan >) op Certificaat Gemeenschappelijke naam.

sudo nginx_gen_ssl.sh

Nadat het certificaat en de SSL-sleutels zijn gegenereerd, maakt u het Rainloop root webserverbestandspad (plaats waar Rainloop PHP-bestanden zich bevinden), schakelt u vervolgens Virtuele Hosts in en start u de Nginx-daemon opnieuw om configuraties toe te passen.

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

Apache virtuele hosts

Maak een nieuw bestand met de naam rainloop.conf in /etc/httpd/conf/sites-available/ met de volgende inhoud.

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

Voeg de volgende bestandsinhoud toe.

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

Maak vervolgens de SSL-equivalente bestandsinhoud voor Apache.

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

Voeg de volgende bestandsinhoud toe.

<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 volgende stap is het maken van een SSL-certificaat-bestand en Sleutels voor SSL Virtual Host en het toevoegen van uw virtuele domeinnaam (rainloop.lan ) op Certificaat Gemeenschappelijke naam.

sudo apache_gen_ssl

Nadat het certificaat en de SSL-sleutels zijn gemaakt, voegt u het Rainloop DocumentRoot-pad toe, schakelt u vervolgens Virtuele Hosts in en start u de Apache-daemon opnieuw om de configuraties toe te passen.

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

Stap 2: Voeg de benodigde PHP-extensies toe

3. Of u nu een Apache- of Nginx-webserver gebruikt, u moet de volgende PHP-extensies inschakelen op php.ini > bestand en voeg ook het nieuwe DocumentRoot pad van de webserver toe aan de open_basedir richtlijn.

sudo nano /etc/php/php.ini

Zoek de volgende PHP-extensies en verwijder de opmerkingen.

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

Ook de open_basedir-instructie zou er zo uit moeten zien.

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

4. Nadat het php.ini-bestand is gewijzigd, start u uw server opnieuw op en controleert u het phpinfo-bestand om te zien of SSL-protocollen zijn ingeschakeld.

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

Stap 3: Download en installeer RainLoop-webmail

5. Nu is het tijd om de Rainloop-applicatie te downloaden en uit te pakken van de officiële website naar de Document Root-map, maar installeer eerst wget en unzip systeemhulpprogramma's.

sudo pacman -S unzip wget

6. Download het nieuwste bronpakket Rainloop zip-archief met de opdracht wget of door een browser te gebruiken om naar http://rainloop.net/downloads/ te gaan.

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

7. Nadat het downloadproces is voltooid, extraheert u het Rainloop-archief naar het hoofdpad van het virtuele hostdocument ( /srv/www/rainloop/ ).

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

8. Stel vervolgens de volgende rechten in op het standaardpad van de applicatie.

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

Stap 4: Configureer Rainloop via de webinterface

9. De Rainloop-applicatie kan op twee manieren worden geconfigureerd: met behulp van een systeemshell of via een browser. Als u via de terminal wilt configureren, opent en bewerkt u het bestand application.ini in /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.

10. Om toegang te krijgen tot de beheerdersinterface vanuit de browser, gebruikt u het volgende URL-adres https://rainloop.lan/?admin en geeft u vervolgens de standaard applicatiegegevens op.

User= admin
Password= 12345

11. Na de eerste keer inloggen wordt u gewaarschuwd om het standaardwachtwoord te wijzigen, dus ik raad u aan dit te doen.

12. Als u contacten wilt inschakelen, meldt u zich aan bij de MySQL-database en maakt u een nieuwe database aan met een bevoorrechte gebruiker. Geef vervolgens de databasegegevens op bij Contacten velden.

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. Rainloop biedt standaard mailserverconfiguratiebestanden voor Gmail, Yahoo en Outlook domeinen, maar u kunt andere toevoegen mailserverdomeinen als je wilt.

14. Om in te loggen op uw mailserver, gaat u in uw browser naar https://rainloop.lan en geeft u de inloggegevens van uw domeinserver op.

Bezoek voor verdere configuraties de officiële Rainloop-documentatiepagina op http://rainloop.net/docs/.

Met Rainloop heb je toegang tot mailservers vanaf elk apparaat dat een browser heeft, zolang je server maar een internetverbinding heeft. Het enige minpunt van het gebruik van de Rainloop-applicatie in Arch Linux tot nu toe is het ontbreken van een poppassd plug-inpakket dat nodig is om het wachtwoord van uw e-mailaccount te wijzigen.