Cara Install Webmail Roundcube di CentOS/RHEL 8/7


Roundcube adalah perangkat lunak email web IMAP multibahasa berbasis web yang gratis dan bersumber terbuka, berfitur lengkap, dengan antarmuka pengguna seperti aplikasi yang berfungsi penuh dan dapat disesuaikan, serta menggunakan standar web terbaru. Itu dibangun menggunakan PHP dan menawarkan fungsionalitas penuh yang dapat Anda harapkan dari klien email modern.

Fitur Kubus Bulat:

  • Ini multibahasa, mendukung lebih dari 70 bahasa.
  • Mendukung buku alamat Temukan saat Anda mengetik.
  • Mendukung banyak identitas pengirim.
  • Menawarkan perlindungan privasi yang canggih.
  • Memiliki buku alamat berfitur lengkap dengan grup dan konektor LDAP.
  • Menawarkan penulisan pesan richtext/HTML.
  • Mendukung pencarian pesan dan kontak.
  • Mendukung Int. nama domain (IDNA).
  • Mendukung manipulasi folder, folder bersama, dan ACL.
  • Dapat diperluas menggunakan API Plug-in.
  • Menyediakan fungsionalitas pemeriksaan ejaan.
  • Menyediakan fungsi impor/ekspor.
  • Memiliki API plug-in untuk ekstensi fleksibel dan banyak lagi.

Persyaratan Sistem yang Direkomendasikan:

  1. Server CentOS 8/RHEL 8 atau CentOS 7/RHEL 7 dengan Instalasi Minimal.
  2. Server web Apache atau Nginx
  3. Basis data PHP dan MySQL/MariaDB
  4. Server SMTP dan IMAP dengan dukungan IMAP4 rev1

Untuk cakupan artikel ini, kami berasumsi bahwa Anda sudah menjalankan server email Postfix dengan pengguna virtual, jika tidak, ikuti panduan pengaturan kami:

  1. Menyiapkan Server Email Postfix dan Dovecot dengan MariaDB – Bagian 1
  2. Konfigurasikan Pengguna Domain Virtual Postfix dan Dovecot – Bagian 2
  3. Instal dan Integrasikan ClamAV dan SpamAssassin ke Server Email Postfix – Bagian 3

Lingkungan Pengujian:

Untuk tujuan artikel ini, saya akan menginstal Roundcube Webmail pada VPS Linode CentOS dengan server web Nginx, alamat IP statis 192.168.0.100, dan nama host mail.linux-console.net.

Langkah 1: Instal Nginx, PHP-FPM, dan MariaDB di CentOS 8/7

1. Pertama mulai dengan mengaktifkan repositori EPEL dan REMI dan menginstal Nginx, PHP , server PHP-FPM, dan MariaDB di sistem CentOS Anda.

yum install epel-release
yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm    [CentOS/RHEL 8]
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm    [CentOS/RHEL 7]
yum install yum-utils 
yum-config-manager --enable remi-php72
yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick mariadb-server   

2. Setelah Anda berhasil menginstal semua paket, jalankan server web Nginx, aktifkan server web tersebut untuk memulai secara otomatis saat boot, dan periksa apakah sudah aktif dan berjalan.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Selanjutnya, jika firewall sistem Anda diaktifkan, Anda perlu membuka port 80 untuk permintaan eksternal.

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload 

4. Selanjutnya, Anda perlu mengonfigurasi PHP-FPM agar berfungsi dengan benar. Buka file /etc/php.ini menggunakan editor pengujian baris perintah.

vim /etc/php.ini

Cari direktif ;cgi.fix_pathinfo=1, batalkan komentar dan setel nilainya ke 0.

cgi.fix_pathinfo=0

Selain itu, batalkan komentar pada direktif ;date.timezone dan setel nilainya ke zona waktu Anda.

date.timezone = "Africa/Kampala"

Setelah selesai, simpan file dan keluar.

5. Kemudian mulai layanan PHP-FPM, aktifkan layanan tersebut untuk memulai secara otomatis saat boot, dan periksa apakah layanan sudah aktif dan berjalan, sebagai berikut.

systemctl start php-fpm 
systemctl enable php-fpm 
systemctl status php-fpm 

Langkah 2: Amankan Server MariaDB dan Buat Database Roundecube

6. Sekarang mulai layanan MariaDB menggunakan perintah berikut.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. Instalasi MariaDB default tidak aman. Anda perlu menjalankan skrip keamanan yang disertakan dengan paket biner, untuk mengamankannya. Anda akan diminta untuk mengatur kata sandi root, menghapus pengguna anonim, menonaktifkan login root dari jarak jauh, dan menghapus database pengujian.

mysql_secure_installation

8. Sekarang login ke database MariaDB, buat database untuk Roundecube, dan berikan pengguna izin yang sesuai pada database tersebut (ingatlah untuk menyetel kata sandi yang kuat/aman di lingkungan produksi).

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '=213@!#webL';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

9. Selanjutnya, impor tata letak tabel Roundcube ke database yang baru dibuat.

cd /var/www/html/roundcubemail/
mysql -u root -p roundcubemail < SQL/mysql.initial.sql

Langkah 3: Unduh Paket Roundcube

10. Pada langkah ini, unduh Roundcube versi stabil terbaru (1.4.9 pada saat penulisan ini) dari halaman unduh atau gunakan pengunduh baris perintah wget untuk dapatkan, ekstrak file TAR, dan unggah file ke root dokumen server web Anda.

wget -c https://github.com/roundcube/roundcubemail/releases/download/1.4.9/roundcubemail-1.4.9-complete.tar.gz
tar xzf roundcubemail-1.4.9-complete.tar.gz 
mv roundcubemail-1.4.9 /var/www/html/roundcubemail

11. Selanjutnya, atur izin yang sesuai pada file webroot Roundcube.

chown -R nginx:nginx /var/www/html/roundcubemail

Langkah 4: Konfigurasikan Blok Server Nginx Untuk Penginstal Web Roundcube

12. Sekarang buat blok server Nginx untuk Roundcube di bawah /etc/nginx/conf.d/ (Anda dapat memberi nama file sesuai keinginan Anda tetapi file tersebut harus memiliki ekstensi .conf).

vim /etc/nginx/conf.d/mail.example.com.conf

Tambahkan konfigurasi berikut dalam file.

server {
        listen 80;
        server_name mail.example.com;

        root /var/www/html/roundcubemail;
        index  index.php index.html;

        #i# Logging
        access_log /var/log/nginx/mail.example.com_access_log;
        error_log   /var/log/nginx/mail.example.com_error_log;

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
                deny all;
        }

        location ~ ^/(config|temp|logs)/ {
                deny all;
        }

        location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
        }

        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                #fastcgi_pass 127.0.0.1:9000;
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

Simpan file dan tutup.

13. Selanjutnya, buka file /etc/php-fpm.d/www.conf untuk membuat beberapa perubahan pada web PHP-FPM pengarahan.

vim /etc/php-fpm.d/www.conf

Ubah pengguna Apache menjadi nginx pada variabel berikut.

user = nginx
group = nginx

Kemudian beri komentar pada baris listen=127.0.0.1:9000 dan setel variabel mendengarkan untuk mendengarkan pada soket Unix yang diatur dalam file blok server nginx:

listen = /var/run/php-fpm/php-fpm.sock

Juga, atur izin untuk soket UNIX, batalkan komentar dan ubah baris menjadi:

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Setelah selesai, simpan file dan tutup.

14. Kemudian restart layanan Nginx dan PHP-FPM untuk menerapkan perubahan terkini, sebagai berikut.

systemctl restart nginx php-fpm

Langkah 5: Akses UI Web Roundcube

15. Sebelum Anda memulai wizard penginstalan, untuk menghindari kesalahan sesi apa pun, tetapkan izin yang sesuai pada direktori /var/lib/php/session/. Pemilik grup default adalah apache, ubah menjadi nginx seperti yang ditunjukkan.

ls -ld /var/lib/php/session/
chown :nginx /var/lib/php/session/
ls -ld /var/lib/php/session/

16. Sekarang buka browser dan gunakan alamat http://mail.example.com/installer (ganti domain dengan nama server yang Anda tetapkan saat membuat blok server Nginx untuk Roundcube) untuk mengakses penginstal web. Jika semua versi PHP, ekstensi, dan pengaturan php.ini/.htaccess sudah benar, Anda akan melihat tangkapan layar berikut, klik Berikutnya untuk membuka halaman konfigurasi.

http://mail.example.com/installer
OR
http://IP-address/installer

17. Halaman konfigurasi memungkinkan Anda menyiapkan instance Roundcube Anda. Kami hanya akan menjelaskan opsi-opsi penting untuk cakupan panduan ini.

Di bawah Konfigurasi Umum, tetapkan nama_produk misalnya Email WebExample.com.

Buka Penyiapan basis data, masukkan host basis data, nama, pengguna, dan kata sandi untuk terhubung ke server MySQL.

Kemudian gulir ke bawah ke setelan IMAP dan SMTP dan masukkan alamat IP server IMAP dan SMTP Anda, jika itu server yang sama tempat Anda menjalankan Roundcube, biarkan sebagai “localhost ” dan tentukan juga parameter lain yang diperlukan.

Anda dapat menentukan pengaturan lain sesuai kebutuhan Anda, setelah selesai, klik Buat Konfigurasi.

18. Anda sekarang akan melihat pesan yang mengatakan ”File konfigurasi berhasil disimpan ke dalam direktori /var/www/html/roundcubemail/config instalasi Roundcube Anda. ” Klik pada Lanjutkan.

19. Anda dapat meninjau konfigurasi Anda dari Halaman konfigurasi pengujian seperti yang ditunjukkan pada tangkapan layar berikut.

20. Selanjutnya, hapus seluruh folder penginstal (yang berisi file yang dapat mengekspos data konfigurasi sensitif seperti kata sandi server dan kunci enkripsi ke publik) dari direktori root Roundcube (atau pastikan bahwa opsi aktifkan_installer di config.inc.php dinonaktifkan).

rm -rf /var/www/html/roundcubemail/installer

21. Terakhir, gunakan URL http://mail.example.com untuk mengakses halaman login Roundcube. Masukkan nama pengguna dan kata sandi Anda untuk melihat email Anda.

Ringkasan

Roundcube adalah klien email multibahasa berbasis web yang banyak digunakan dan berfitur lengkap. Dalam artikel ini, kami menunjukkan cara menginstal Roundcube Webmail versi stabil terbaru di CentOS/RHEL 8/7 dengan server web Nginx. Jika Anda memiliki pertanyaan, gunakan formulir umpan balik di bawah untuk menghubungi kami.