Installer RainLoop Webmail (en nettbasert e-postklient) ved å bruke 'Nginx og Apache' i Arch Linux


Rainloop er en gratis åpen kildekode-nettapplikasjon skrevet i PHP som gir et raskt moderne nettgrensesnitt for å få tilgang til e-postene dine på alle store domenepostleverandører som Yahoo, Gmail, Outlook og mange andre, så vel som dine egne lokale e-postservere, og også, fungerer som en MUA (Mail User Agent) ved å få tilgang til domenepostservere gjennom IMAP- og SMTP-protokoller.

RainLoop-demo

Ta en rask titt på demosideoppsettet av forfatteren på http://demo.rainloop.net/.

Når du har distribuert Rainloop på serverne dine, er det eneste som gjenstår å få tilgang til Rainloop-domenet ditt via en nettleser og oppgi legitimasjon for din aktiverte domene-e-postserver.

Denne opplæringen dekker installasjonsprosessen for Rainloop webmail på Arch Linux fra begge konfigurasjonsfiler for Apache og Nginx, ved å bruke et virtuelt lokalt domene konfigurert gjennom en lokal vertsfil, uten en DNS-server.

Hvis du også trenger referanser for å installere Rainloop på Debian og Red Hat-systemer, besøk den forrige RainLoop Webmail-artikkelen på.

  1. Installer RainLoop Webmail på Debian- og Red Hat-baserte systemer

Krav

For Nginx
  1. Installer LEMP (Nginx, PHP, MySQL med MariaDB-motor og PhpMyAdmin) i Arch Linux
  2. Opprett virtuelle verter i Nginx Web Server
For Apache
  1. Installer LAMP (Linux, Apache, MySQL/MariaDB og PHP/PhpMyAdmin) i Arch Linux

Trinn 1: Lag virtuelle verter for Nginx eller Apache

1. Forutsatt at du har konfigurert serverne (Nginx eller Apache) som beskrevet i øvre presentasjonskoblinger, er det første du må gjøre for å lage en rudimentær DNS-oppføring på lokal hosts-fil som peker til Arch Linux system-IP.

Rediger /etc/hosts-filen på et Linux-system og inkluder det virtuelle Rainloop-domenet ditt etter oppføring av localhost.

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

På Windows-system rediger C:\Windows\System32\drivers\etc\hosts og legg til følgende linje nederst.

192.168.1.33       rainloop.lan

2. Etter at du har bekreftet lokalt domene ved hjelp av kommandoen ping, oppretter du de nødvendige Virtual Hosts- og SSL-konfigurasjonene for Apache eller Nginx.

Nginx virtuelle verter

Opprett en fil med navnet rainloop.lan i /etc/nginx/sites-available/ banen med følgende konfigurasjon.

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

Legg til følgende filinnhold.

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

Deretter oppretter du det tilsvarende SSL-filinnholdet.

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

Legg til følgende filinnhold.

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

På neste trinn generer du Sertifikat-fil og nøkler for SSL Virtual Host og legg til ditt virtuelle domenenavn (rainloop.lan >) på sertifikatet Fellesnavn.

sudo nginx_gen_ssl.sh

Etter at sertifikatet og SSL-nøklene er generert, oppretter du Rainloop root webserver filbane (sted der Rainloop PHP-filer ligger), og deretter aktiverer Virtual Hosts og start Nginx daemon på nytt for å bruke konfigurasjoner.

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

Apache virtuelle verter

Opprett en ny fil kalt rainloop.conf i /etc/httpd/conf/sites-available/ med følgende innhold.

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

Legg til følgende filinnhold.

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

Opprett deretter SSL-ekvivalent filinnhold for Apache.

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

Legg til følgende filinnhold.

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

Det neste trinnet er å opprette SSL-sertifikat-fil og nøkler for SSL Virtual Host og legge til ditt virtuelle domenenavn (rainloop.lan ) på sertifikatet Fellesnavn.

sudo apache_gen_ssl

Etter at sertifikatet og SSL-nøklene er opprettet, legg til Rainloop DocumentRoot-bane, aktiver deretter Virtual Hosts og start Apache-demonen på nytt for å bruke konfigurasjoner.

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

Trinn 2: Legg til nødvendige PHP-utvidelser

3. Enten du bruker Apache eller Nginx webserver, må du aktivere følgende PHP-utvidelser på php.ini fil og inkludere også den nye webserveren DocumentRoot-banen til open_basedir-direktivet.

sudo nano /etc/php/php.ini

Finn og fjern kommentarer til følgende PHP-utvidelser.

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

Også open_basedir-setningen skal se slik ut.

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

4. Etter at php.ini-filen ble endret, start serveren på nytt og sjekk phpinfo-filen for å se om SSL-protokoller er aktivert.

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

Trinn 3: Last ned og installer RainLoop Webmail

5. Nå er det på tide å laste ned og trekke ut Rainloop-applikasjonen fra den offisielle nettsiden til Document Root-katalogen, men først installer wget og unzip systemverktøy.

sudo pacman -S unzip wget

6. Last ned den nyeste kildepakken Rainloop zip-arkiv ved å bruke wget-kommandoen eller ved å bruke en nettleser for å navigere til http://rainloop.net/downloads/.

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

7. Etter at nedlastingsprosessen er ferdig, pakk ut Rainloop-arkivet til Virtual Host Document Root-bane ( /srv/www/rainloop/ ).

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

8. Angi deretter følgende tillatelser på programmets standardbane.

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

Trinn 4: Konfigurer Rainloop via webgrensesnitt

9. Rainloop-applikasjonen kan konfigureres på to måter: ved å bruke et system-skall eller via nettleseren. Hvis du vil konfigurere over terminal, åpne og rediger application.ini-filen som ligger i /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.

10. For å få tilgang til administrasjonsgrensesnittet fra nettleseren, bruk følgende URL-adresse https://rainloop.lan/?admin, og oppgi deretter standard applikasjonslegitimasjonen.

User= admin
Password= 12345

11. Etter første pålogging vil du bli advart om å endre standardpassordet, så jeg anbefaler deg å gjøre det.

12. Hvis du vil aktivere kontakter pålogging til MySQL-databasen og opprette en ny database med en privilegert bruker på den, oppgi databaselegitimasjon på Kontakter felt.

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. Som standard gir Rainloop e-postserverkonfigurasjonsfiler for Gmail, Yahoo og Outlook domener, men du kan legge til andre e-postserverdomener hvis du vil.

14. For å logge på e-postserveren peker du på https://rainloop.lan i nettleseren og oppgir legitimasjonen til domeneserveren.

For ytterligere konfigurasjoner, besøk den offisielle Rainloop-dokumentasjonssiden på http://rainloop.net/docs/.

Med Rainloop kan du få tilgang til e-postservere fra hvilken som helst enhet som har en nettleser så lenge serveren din har Internett-tilkobling, det eneste minuset med å bruke Rainloop-applikasjonen i Arch Linux så langt er mangelen på poppassd plugin-pakke som trengs for å endre passordet til e-postkontoen.