Instal RainLoop Webmail (Klien Email Berbasis Web) menggunakan 'Nginx dan Apache' di Arch Linux


Rainloop adalah aplikasi web Sumber Terbuka gratis yang ditulis dalam PHP yang menyediakan antarmuka web modern yang cepat untuk mengakses email Anda di semua penyedia email domain utama seperti Yahoo, Gmail, Outlook dan banyak lainnya serta server email lokal Anda sendiri, dan, juga, bertindak sebagai MUA (Agen Pengguna Email) dengan mengakses server email domain melalui protokol IMAP dan SMTP.

Demo Lingkaran Hujan

Lihat sekilas pengaturan halaman demo oleh penulis di http://demo.rainloop.net/.

Setelah Anda menerapkan Rainloop di server Anda, satu-satunya hal yang perlu dilakukan adalah mengakses domain Rainloop Anda melalui browser web dan memberikan kredensial untuk server email domain Anda yang diaktifkan.

Tutorial ini mencakup proses instalasi webmail Rainloop di Arch Linux dari kedua sudut pandang file konfigurasi untuk Apache dan Nginx, menggunakan domain lokal virtual yang dikonfigurasi melalui file host lokal, tanpa server DNS.

Jika Anda juga memerlukan referensi tentang cara menginstal Rainloop di sistem Debian dan Red Hat kunjungi artikel Webmail RainLoop sebelumnya di.

  1. Instal RainLoop Webmail pada Sistem berbasis Debian dan Red Hat

Persyaratan

Untuk Nginx
  1. Instal LEMP (Nginx, PHP, MySQL dengan mesin MariaDB dan PhpMyAdmin) di Arch Linux
  2. Buat Host Virtual di Server Web Nginx
Untuk Apache
  1. Instal LAMP (Linux, Apache, MySQL/MariaDB, dan PHP/PhpMyAdmin) di Arch Linux

Langkah 1: Buat Host Virtual untuk Nginx atau Apache

1. Dengan asumsi bahwa Anda telah mengonfigurasi server Anda (Nginx atau Apache) seperti yang dijelaskan dalam tautan presentasi atas, hal pertama yang perlu Anda lakukan adalah untuk membuat entri DNS dasar pada file hosts lokal yang mengarah ke IP sistem Arch Linux.

Pada sistem Linux, edit file /etc/hosts dan sertakan domain virtual Rainloop Anda setelah entri localhost.

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

Pada sistem Windows, edit C:\Windows\System32\drivers\etc\hosts dan tambahkan baris berikut di bagian bawah.

192.168.1.33       rainloop.lan

2. Setelah Anda memverifikasi domain lokal menggunakan perintah ping, buat konfigurasi Virtual Hosts dan SSL yang diperlukan untuk Apache atau Nginx.

Host Virtual Nginx

Buat file bernama rainloop.lan di jalur /etc/nginx/sites-available/ dengan konfigurasi berikut.

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

Tambahkan konten file berikut.

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

Kemudian buat konten file yang setara dengan SSL.

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

Tambahkan konten file berikut.

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

Pada langkah selanjutnya buat file Sertifikat dan Kunci untuk SSL Virtual Host dan tambahkan nama domain virtual Anda (rainloop.lan) pada Sertifikat Nama Umum.

sudo nginx_gen_ssl.sh

Setelah Sertifikat dan kunci SSL dibuat, buat jalur file server web Rainloop root (tempat di mana file PHP Rainloop berada), lalu aktifkan Virtual Hosts dan mulai ulang daemon Nginx untuk menerapkan konfigurasi.

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

Host Virtual Apache

Buat file baru bernama rainloop.conf di /etc/httpd/conf/sites-available/ dengan konten berikut.

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

Tambahkan konten file berikut.

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

Kemudian buat konten file setara SSL untuk Apache.

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

Tambahkan konten file berikut.

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

Langkah selanjutnya adalah membuat file Sertifikat SSL dan Kunci untuk SSL Virtual Host dan menambahkan nama domain virtual Anda (rainloop.lan ) pada Sertifikat Nama Umum.

sudo apache_gen_ssl

Setelah Sertifikat dan kunci SSL dibuat, tambahkan jalur DocumentRoot Rainloop, lalu aktifkan Virtual Host dan mulai ulang daemon Apache untuk menerapkan konfigurasi.

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

Langkah 2: Tambahkan Ekstensi PHP yang diperlukan

3. Baik Anda menggunakan server web Apache atau Nginx, Anda perlu mengaktifkan ekstensi PHP berikut di php.ini file dan, juga, sertakan jalur DocumentRoot server web baru ke direktif open_basedir.

sudo nano /etc/php/php.ini

Temukan dan hapus komentar pada ekstensi PHP berikut.

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

Pernyataan open_basedir juga akan terlihat seperti ini.

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

4. Setelah file php.ini dimodifikasi, restart server Anda lalu periksa file phpinfo untuk melihat apakah protokol SSL diaktifkan.

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

Langkah 3: Unduh dan Instal RainLoop Webmail

5. Sekarang saatnya mengunduh dan mengekstrak aplikasi Rainloop dari situs resmi ke direktori Root Dokumen, tetapi instal dulu utilitas sistem wget dan unzip.

sudo pacman -S unzip wget

6. Unduh paket sumber terbaru arsip zip Rainloop menggunakan perintah wget atau dengan menggunakan browser untuk menavigasi ke http://rainloop.net/downloads/.

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

7. Setelah proses pengunduhan selesai, ekstrak arsip Rainloop ke jalur Root Dokumen Host Virtual ( /srv/www/rainloop/ ).

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

8. Kemudian atur izin berikut pada jalur default aplikasi.

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

Langkah 4: Konfigurasikan Rainloop melalui Antarmuka Web

9. Aplikasi Rainloop dapat dikonfigurasi dengan dua cara: menggunakan shell sistem melalui browser. Jika Anda ingin mengonfigurasi melalui terminal, buka dan edit file application.ini yang terletak di /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.

10. Untuk mengakses Antarmuka Admin dari browser, gunakan alamat URL berikut https://rainloop.lan/?admin, lalu berikan kredensial aplikasi default.

User= admin
Password= 12345

11. Setelah login awal Anda akan diperingatkan untuk mengubah kata sandi default, jadi saya menyarankan Anda untuk melakukannya.

12. Jika Anda ingin mengaktifkan login kontak ke database MySQL dan membuat database baru dengan pengguna yang memiliki hak istimewa di dalamnya, berikan kredensial database di Kontak bidang.

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. Secara default, Rainloop menyediakan file konfigurasi server email domain Gmail, Yahoo dan Outlook, namun Anda dapat menambahkan file konfigurasi lainnya domain server email jika Anda mau.

14. Untuk masuk ke server email, arahkan browser Anda ke https://rainloop.lan dan berikan kredensial server domain Anda.

Untuk konfigurasi lebih lanjut silakan kunjungi halaman dokumentasi resmi Rainloop di http://rainloop.net/docs/.

Dengan Rainloop Anda dapat mengakses server email dari perangkat apa pun yang memiliki browser selama server Anda memiliki konektivitas Internet, satu-satunya kekurangan menggunakan aplikasi Rainloop di Arch Linux sejauh ini adalah kurangnya paket plugin poppassd yang diperlukan untuk mengubah kata sandi akun email.