Įdiekite „RainLoop Webmail“ (žiniatinklio el. pašto klientą) naudodami „Nginx ir Apache“ „Arch Linux“


Rainloop yra nemokama atvirojo kodo žiniatinklio programa, parašyta PHP, kuri suteikia sparčią modernią žiniatinklio sąsają, leidžiančią pasiekti jūsų el. laiškus visuose pagrindinių domenų pašto paslaugų teikėjuose, pvz., Yahoo, Gmail, Outlook ir daugelyje kitų, taip pat jūsų vietiniuose pašto serveriuose ir veikia kaip MUA (pašto vartotojo agentas), prieidamas prie domeno pašto serverių per IMAP ir SMTP protokolus.

RainLoop demonstracija

Greitai peržiūrėkite autoriaus demonstracinio puslapio sąranką adresu http://demo.rainloop.net/.

Įdiegę Rainloop savo serveriuose, beliks pasiekti savo Rainloop domeną per žiniatinklio naršyklę ir pateikti įgalinto domeno pašto serverio kredencialus.

Ši pamoka apima Rainloop žiniatinklio pašto diegimo procesą Arch Linux, žiūrint iš abiejų Apache ir Nginx konfigūracijos failų, naudojant virtualų vietinį domeną, sukonfigūruotą per vietinių kompiuterių failą, be DNS serverio.

Jei taip pat reikia nuorodų apie Rainloop diegimą Debian irRed Hat sistemose, apsilankykite ankstesniame RainLoop Webmail straipsnyje adresu.

  1. Įdiekite RainLoop Webmail Debian ir Red Hat sistemose

Reikalavimai

Dėl Nginx
  1. Įdiekite LEMP (Nginx, PHP, MySQL su MariaDB varikliu ir PhpMyAdmin) „Arch Linux“.
  2. Sukurkite virtualius pagrindinius kompiuterius Nginx žiniatinklio serveryje
Dėl Apache
  1. Įdiekite LAMP („Linux“, „Apache“, „MySQL/MariaDB“ ir „PHP/PhpMyAdmin“) „Arch Linux“

1 veiksmas: sukurkite virtualius „Nginx“ arba „Apache“ pagrindinius kompiuterius

1. Darant prielaidą, kad sukonfigūravote savo serverius (Nginx arba Apache), kaip aprašyta viršutinėse pristatymų nuorodose, pirmas dalykas, kurį turite padaryti, yra sukurti elementarų DNS įrašą vietiniame hosts faile, kuris nurodo Arch Linux sistemos IP.

Linux sistemoje redaguokite /etc/hosts failą ir įtraukite savo Rainloop virtualų domeną įvedę localhost.

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

„Windows“ sistemoje redaguokite C:\Windows\System32\drivers\etc\hosts ir apačioje pridėkite šią eilutę.

192.168.1.33       rainloop.lan

2. Kai patvirtinsite vietinį domeną naudodami komandą ping, sukurkite reikiamas Virtual Host ir SSL konfigūracijas, skirtas Apache arba Nginx.

Nginx virtualūs kompiuteriai

Sukurkite failą pavadinimu rainloop.lan /etc/nginx/sites-available/ kelyje su tokia konfigūracija.

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

Pridėkite toliau nurodytą failo turinį.

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

Tada sukurkite SSL ekvivalento failo turinį.

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

Pridėkite toliau nurodytą failo turinį.

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

Atlikdami kitą veiksmą sugeneruokite Sertifikato failą ir Raktus SSL virtualiajai prieglobai ir pridėkite savo virtualų domeno pavadinimą (rainloop.lan >) sertifikate Bendras pavadinimas.

sudo nginx_gen_ssl.sh

Sugeneravę sertifikatą ir SSL raktus, sukurkite Rainloop root žiniatinklio serverio failo kelią (vietą, kur yra Rainloop PHP failai), tada įgalinkite virtualiuosius pagrindinius kompiuterius ir iš naujo paleiskite Nginx demoną, kad pritaikytumėte konfigūracijas.

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

„Apache“ virtualūs kompiuteriai

Sukurkite naują failą pavadinimu rainloop.conf aplanke /etc/httpd/conf/sites-available/ su tokiu turiniu.

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

Pridėkite toliau nurodytą failo turinį.

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

Tada sukurkite SSL ekvivalento failo turinį, skirtą „Apache“.

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

Pridėkite toliau nurodytą failo turinį.

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

Kitas veiksmas – sukurti SSL sertifikato failą ir raktus, skirtus SSL virtualiajai prieglobai ir pridėti savo virtualų domeno pavadinimą (rainloop.lan ) sertifikate Bendras pavadinimas.

sudo apache_gen_ssl

Sukūrę sertifikatą ir SSL raktus, pridėkite Rainloop DocumentRoot kelią, tada įgalinkite Virtual Hosts ir iš naujo paleiskite Apache demoną, kad pritaikytumėte konfigūracijas.

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

2 veiksmas: pridėkite reikiamus PHP plėtinius

3. Nesvarbu, ar naudojate Apache ar Nginx žiniatinklio serverį, php.ini turite įgalinti šiuos PHP plėtinius > failą ir taip pat įtraukite naują žiniatinklio serverio DocumentRoot kelią į open_basedir direktyvą.

sudo nano /etc/php/php.ini

Raskite toliau nurodytus PHP plėtinius ir panaikinkite jų komentarus.

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

Taip pat turėtų atrodyti open_basedir teiginys.

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

4. Pakeitus php.ini failą, iš naujo paleiskite serverį ir patikrinkite phpinfo failą, kad pamatytumėte, ar SSL protokolai yra įjungti.

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

3 veiksmas: atsisiųskite ir įdiekite „RainLoop Webmail“.

5. Dabar laikas atsisiųsti ir išskleisti Rainloop programą iš oficialios svetainės į Document Root katalogą, bet pirmiausia įdiegti wget ir unzip sistemos priemones.

sudo pacman -S unzip wget

6. Atsisiųskite naujausią šaltinio paketą Rainloop zip archyvą naudodami komandą wget arba naudodami naršyklę, kad pereitumėte į http://rainloop.net/downloads/.

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

7. Pasibaigus atsisiuntimo procesui, išskleiskite Rainloop archyvą į virtualaus pagrindinio kompiuterio dokumento šakninį kelią ( /srv/www/rainloop/ ).

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

8. Tada nustatykite toliau nurodytus leidimus numatytajame programos kelyje.

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

4 veiksmas: sukonfigūruokite „Rainloop“ naudodami žiniatinklio sąsają

9. Rainloop programą galima konfigūruoti dviem būdais: naudojant sistemos apvalkalą per naršyklę. Jei norite konfigūruoti per terminalą, atidarykite ir redaguokite application.ini failą, esantį /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.

10. Norėdami pasiekti administratoriaus sąsają iš naršyklės, naudokite šį URL adresą https://rainloop.lan/?admin, tada pateikite numatytuosius programos kredencialus.

User= admin
Password= 12345

11. Po pirminio prisijungimo būsite įspėjami pakeisti numatytąjį slaptažodį, todėl patariu tai padaryti.

12. Jei norite įgalinti kontaktus prisijungti prie MySQL duomenų bazės ir sukurti naują duomenų bazę su privilegijuotu vartotoju, pateikite duomenų bazės kredencialus Kontaktuose laukus.

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. Pagal numatytuosius nustatymus „Rainloop“ teikia Gmail, Yahoo ir Outlook domenų pašto serverio konfigūracijos failus, tačiau galite pridėti kitų pašto serverio domenai, jei norite.

14. Norėdami prisijungti prie savo pašto serverio, nukreipkite naršyklę į https://rainloop.lan ir pateikite domeno serverio kredencialus.

Norėdami gauti daugiau konfigūracijų, apsilankykite oficialiame Rainloop dokumentacijos puslapyje adresu http://rainloop.net/docs/.

Naudodami Rainloop galite pasiekti pašto serverius iš bet kurio įrenginio, kuriame yra naršyklė, jei jūsų serveris turi interneto ryšį. Vienintelis Rainloop programos naudojimo Arch Linux iki šiol trūkumas yra tai, kad trūksta poppassd papildinio paketo. pašto paskyros slaptažodžiui pakeisti.