I-install ang RainLoop Webmail (Usa ka Web Based Email Client) gamit ang Nginx ug Apache sa Arch Linux


Ang Rainloop usa ka libre nga Open Source web application nga gisulat sa PHP nga naghatag usa ka paspas nga moderno nga web interface aron ma-access ang imong mga email sa tanan nga mga mayor nga domain mail providers sama sa Yahoo, Gmail, Outlook ug daghan pa ingon man sa imong kaugalingon nga lokal nga mga mail server, ug, usab, naglihok isip MUA (Mail User Agent) pinaagi sa pag-access sa mga domain mail server pinaagi sa IMAP ug SMTP protocols.

Tan-awa dayon ang demo page setup sa tagsulat sa http://demo.rainloop.net/.

Kung na-deploy na nimo ang Rainloop sa imong mga server ang nahabilin na lang nga buhaton mao ang pag-access sa imong domain sa Rainloop pinaagi sa usa ka web browser ug maghatag mga kredensyal alang sa imong gipagana nga domain mail server.

Kini nga pagtulun-an naglangkob sa Rainloop proseso sa pag-instalar sa webmail sa Arch Linux gikan sa duha ka punto sa panglantaw nga mga configuration file alang sa Apache ug Nginx, gamit ang usa ka virtual nga lokal nga domain nga gi-configure pinaagi sa local hosts file, nga walay DNS server.

Kung kinahanglan nimo usab ang mga pakisayran sa pag-install sa Rainloop sa mga sistema sa Debian ug Red Hat bisitaha ang miaging artikulo sa RainLoop Webmail sa.

  1. I-install ang RainLoop Webmail sa Debian ug Red Hat based Systems

  1. I-install ang LEMP (Nginx, PHP, MySQL nga adunay MariaDB engine ug PhpMyAdmin) sa Arch Linux
  2. Paghimo og Virtual Host sa Nginx Web Server

  1. I-install ang LAMP (Linux, Apache, MySQL/MariaDB, ug PHP/PhpMyAdmin) sa Arch Linux

Lakang 1: Paghimo Virtual Hosts para sa Nginx o Apache

1. Sa pag-ingon nga imong gi-configure ang imong mga server (Nginx o Apache) nga gihulagway sa mga link sa taas nga presentasyon, ang unang butang nga kinahanglan nimong buhaton mao ang paghimo og usa ka yano nga DNS entry sa lokal nga hosts file nga nagpunting sa Arch Linux system IP.

Sa Linux system i-edit ang /etc/hosts file ug iapil ang imong Rainloop virtual nga domain pagkahuman sa localhost entry.

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

Sa sistema sa Windows i-edit ang C:\Windows\System32\drivers\etc\hosts ug idugang ang mosunod nga linya sa ubos.

192.168.1.33       rainloop.lan

2. Human nimo ma-verify ang lokal nga dominyo gamit ang ping nga sugo, paghimo sa gikinahanglan nga Virtual Hosts ug SSL nga mga configuration para sa Apache o Nginx.

Paghimo ug file nga gihinganlan og rainloop.lan sa /etc/nginx/sites-available/ nga dalan nga adunay mosunod nga configuration.

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

Idugang ang mosunod nga sulod sa 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;
    }
 }

Dayon paghimo sa SSL nga katumbas nga sulod sa file.

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

Idugang ang mosunod nga sulod sa 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;
    }
 }

Sa sunod nga lakang paghimo og Certificate file ug Keys para sa SSL Virtual Host ug idugang ang imong virtual domain name (rainloop.lan) sa Certificate Common Name.

$ sudo nginx_gen_ssl.sh

Human mamugna ang Certificate ug SSL keys, paghimo og Rainloop root webserver file path ( dapit diin ang Rainloop PHP files nagpuyo), dayon pagana ang Virtual Hosts ug i-restart ang Nginx daemon aron magamit ang mga configuration.

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

Paghimo ug bag-ong payl nga ginganlan og rainloop.conf sa /etc/httpd/conf/sites-available/ nga adunay mosunod nga sulod.

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

Idugang ang mosunod nga sulod sa 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>

Dayon paghimo sa SSL nga katumbas nga sulod sa file alang sa Apache.

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

Idugang ang mosunod nga sulod sa 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>

Ang sunod nga lakang mao ang paghimo og SSL Certificate file ug Keys para sa SSL Virtual Host ug idugang ibutang ang imong virtual domain name (rainloop.lan ) sa Certificate Common Name.

$ sudo apache_gen_ssl

Human mabuhat ang Sertipiko ug SSL nga mga yawe, idugang ang Rainloop DocumentRoot nga agianan, dayon i-enable ang Virtual Hosts ug i-restart ang Apache daemon aron magamit ang mga configuration.

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

Lakang 2: Idugang ang gikinahanglan nga PHP Extension

3. Nagamit man nimo ang Apache o Nginx webserver, kinahanglan nimo nga palihokon ang mosunod nga mga extension sa PHP sa php.ini file ug, usab, ilakip ang bag-ong webserver DocumentRoot nga agianan paingon sa open_basedir nga direktiba.

$ sudo nano /etc/php/php.ini

Pangitaa ug uncomment ang mosunod nga mga extension sa 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

Usab ang open_basedir nga pahayag kinahanglan nga ingon niini.

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

4. Human mausab ang php.ini nga payl i-restart ang imong server kay sa susiha ang phpinfo file aron tan-awon kon ang SSL nga mga protocol gi-enable ba.

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

Lakang 3: I-download ug I-install ang RainLoop Webmail

5. Karon na ang panahon sa pag-download ug pagkuha sa Rainloop nga aplikasyon gikan sa opisyal nga website ngadto sa Document Root directory apan una nga i-install ang wget ug unzip system utilities.

$ sudo pacman -S unzip wget

6. I-download ang pinakabag-o nga source package Rainloop zip archive gamit ang wget command o pinaagi sa paggamit og browser aron maka-navigate sa http://rainloop.net/downloads/.

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

7. Human mahuman ang proseso sa pag-download, kuhaa ang Rainloop archive ngadto sa Virtual Host Document Root path ( /srv/www/rainloop/ ).

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

8. Dayon ibutang ang mosunod nga mga permiso sa default nga dalan sa aplikasyon.

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

Lakang 4: I-configure ang Rainloop pinaagi sa Web Interface

9. Ang aplikasyon sa Rainloop mahimong ma-configure sa duha ka paagi: gamit ang system shell sa pinaagi sa browser. Kung gusto nimong i-configure ang pagbukas sa terminal ug i-edit ang application.ini file nga nahimutang sa /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.

10. Aron ma-access ang Admin Interface gikan sa browser, gamita ang mosunod nga URL address https://rainloop.lan/?admin, dayon ihatag ang default nga mga kredensyal sa aplikasyon.

User= admin
Password= 12345

11. Human sa inisyal nga pag-login mapasidan-an ka nga usbon ang default nga password, mao nga gitambagan ko ikaw sa pagbuhat niini.

12. Kung gusto nimo nga ma-enable ang contacts login sa MySQL database ug maghimo og bag-ong database nga adunay pribilihiyo nga user niini, dayon paghatag og database credentials sa Contacts fields.

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. Pinaagi sa default Rainloop naghatag sa Gmail, Yahoo ug Outlook nga mga dominyo nga mga file sa pag-configure sa mail server, apan mahimo nimong idugang ang ubang mga domain sa mail server kung gusto nimo.

14. Sa pag-login sa imong mail server itudlo ang imong browser sa https://rainloop.lan ug ihatag ang imong domain server nga mga kredensyal.

Para sa dugang nga mga configuration palihog bisitaha ang opisyal nga Rainloop documentation page sa http://rainloop.net/docs/.

Uban sa Rainloop mahimo nimong ma-access ang mga mail server gikan sa bisan unsang aparato nga adunay browser basta ang imong server adunay koneksyon sa Internet, ang bugtong minus sa paggamit sa Rainloop nga aplikasyon sa Arch Linux hangtod karon mao ang kakulang sa poppassd plugin package nga gikinahanglan. aron usbon ang password sa email account.