Cara Install EspoCRM pada Web Server Nginx di CentOS 7

Aplikasi CRM menjadi sangat penting ketika berhadapan dengan pengelolaan customer relations. Salah satu aplikasi CRM open source yang bisa kamu andalkan adalah EspoCRM. Jika kamu menggunakan server dengan CentOS 7 dan web server Nginx, pelajari cara install EspoCRM dari pembahasan di bawah ini, ya.

Apa Itu EspoCRM?

EspoCRM adalah salah satu aplikasi Customer Relationship Manager berbasis web dan bersifat open source. Aplikasi yang ditulis menggunakan bahasa pemrograman PHP ini menggunakan MySQL Database untuk menyimpan data dan sangat responsif.

Selain itu, EspoCRM juga memiliki tampilan web yang user-friendly dengan berbagai bahasa yang dapat digunakan beragam industri, seperti retail, e-commerce, perbankan, call centre, real estate, dan lain-lain.

Tutorial Install EspoCRM pada Nginx di CentOS 7

Ada beberapa hal yang perlu disiapkan untuk melakukan instalasi ini, yaitu:

  1. Memiliki VPS dan domain yang aktif.
  2. Memiliki akses root.

Baca Juga: Cara Install Docker di CentOS 7

Berikut ini langkah utama untuk meng-install EspoCRM pada Nginx di CentOS 7:

  • Update Server
  • Install Firewall
  • Install Nginx Web Server
  • Install MariaDB Database Server
  • Create Database & User Database
  • Install PHP 7.1
  • Configure PHP.ini
  • Configure PHP-FPM
  • Disable SELinux
  • Download Package EspoCRM
  • Create Virtual Host Nginx
  • Testing

Simak penjelasan cara di atas berikut ini.

Update Server

Login sebagai root dan update package yang ada pada server agar up-to-date.

$ yum update -y
$ reboot

 

Install beberapa packages yang dibutuhkan.

$ yum install nano perl wget zip unzip -y

 

Install Firewall

Sebelum memulai instalasi EspoCRM, kamu perlu meng-install firewall agar lebih aman. Di tutorial kali ini kita akan menggunakan CSF (ConfigServer Security & Firewall). Instalasinya dilakukan dengan perintah di bawah ini:

$ cd /usr/src
$ wget https://download.configserver.com/csf.tgz
$ tar -xzf csf.tgz
$ cd csf/
$ sh install.sh

 

Pada konfigurasi CSF, ubah “make TESTING=’1’ menjadi 0”.

$ nano /etc/csf/csf.conf

 

Kemudian restart CSF agar dapat me-reload konfigurasi yang sudah diperbarui.

$ csf -r

 

Install Nginx Web Server

Web server yang digunakan pada tutorial cara install EspoCRM di CentOS 7 ini adalah Nginx Web Server. Instalasinya dilakukan dengan cara berikut ini.

$ yum install nginx -y

 

Aktifkan dan start on-boot layanan Nginx.

$ systemctl start nginx
$ systemctl enable nginx

 

Kemudian cek status keaktifan Nginx.

$ systemctl status nginx
  •  nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-04-23 01:50:29 UTC; 7s ago
 Main PID: 21768 (nginx)
   CGroup: /system.slice/nginx.service
           ├─21768 nginx: master process /usr/sbin/nginx
           └─21769 nginx: worker process

Baca Juga: Cara Install SSL Let’s Encrypt pada Nginx di CentOS 7

Install MariaDB Database Server

Server database yang digunakan pada instalasi EspoCRM ini adalah MariaDB, karena MySQL sudah outdated sehingga yang paling up-to-date dan direkomendasikan saat ini adalah MariaDB.

$ yum install mariadb-server mariadb -y

 

Aktifkan dan start on-boot MariaDB dengan perintah di bawah ini.

$ systemctl start mariadb
$ systemctl enable mariadb 

 

Cek status keaktifan layanan MariaDB.

$ systemctl status mariadb
  •  mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-04-23 01:53:06 UTC; 15s ago
 Main PID: 21957 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─21957 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

 

Kemudian lakukan command di bawah ini untuk memulai inisisasi setup MariaDB.

$ mysql_secure_installation

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
Remove anonymous users? [Y/n] y
 ... Success!
Disallow root login remotely? [Y/n] y
 ... Success!
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...


All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

 

Create Database & User Database

Kamu memerlukan database dan user database agar dapat menggunakan EspoCRM. Ikuti cara pembuatannya dari instruksi di bawah ini.

$ mysql -u root -p
# CREATE DATABASE escrm_data;
# CREATE USER ‘escrm_user’@’localhost’ IDENTIFIED BY ‘P4ssw0rd’;
# GRANT ALL PRIVILEGES ON *.* TO 'escrm_user'@localhost IDENTIFIED BY ‘P4ssw0rd’;
# GRANT ALL PRIVILEGES ON escrm_data.* TO 'escrm_user'@localhost;
# FLUSH PRIVILEGES;
# exit

 

Install PHP 7.1

Versi PHP yang digunakan pada cara install EspoCRM dengan Nginx di CentOS 7 ini adalah versi 7.1. Sebelum meng-install PHP 7.1, kamu perlu meng-install yum-utils terlebih dulu. Sebab, yum-utils menyediakan banyak tools dan program untuk mengelola Yum Repositories.

$ yum install yum-utils -y

 

Import Remi Repository.

$ yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y

 

Aktifkan Remi Repository.

$ yum-config-manager --enable remi-php71 -y

 

Install ekstensi dan modul yang diperlukan.

$ yum install php php-pdo php-json php-mbstring php-imap php-pdo-mysql php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql php-fpm php-zip -y

 

Kemudian cek versi PHP-nya, apakah sudah sesuai atau belum.

$ php -v
PHP 7.1.33 (cli) (built: Feb  3 2021 09:59:18) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.33, Copyright (c) 1999-2018, by Zend Technologies

 

Aktifkan dan start on-boot php-fpm.

$ systemctl start php-fpm
$ systemctl enable php-fpm

 

Configure PHP.ini

Ada yang perlu diubah pada pengaturan php.ini, ikuti instruksi di bawah ini.

$ nano /etc/php.ini

 

Ubah di bagian time.zone, sesuaikan dengan zona waktu kamu, pada contoh ini adalah Asia/Jakarta.

date.timezone = Asia/Jakarta

 

Lalu ubah pada beberapa line di bawah ini.

memory_limit = 512M
upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 300
max_input_time = 300

 

Configure PHP-FPM

Setelah itu, ubah konfigurasi php-fpm di bawah ini.

$ nano /etc/php-fpm.d/www.conf

 

Mengingat web server yang digunakan adalah Nginx, maka kamu perlu mengubah user dan group menjadi “nginx”.

user = nginx
group = nginx

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

 

Jika sudah, lakukan uncomment pada security limit extension, cukup aktifkan .php saja.

security.limit_extensions = .php

Uncomment PHP Environment.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

 

Simpan lalu keluar.

 

Disable SELinux

Kamu perlu menonaktifkan SELinux pada CentOS 7, gunakan cara di bawah ini.

$ nano /etc/selinux/config

 

Ubah pada line SELINUX=enforcing menjadi:

SELINUX=disabled

 

Kemudian simpan dan reboot server.

Baca Juga: Cara Instalasi Monit Server Monitoring di CentOS 7

Download Package EspoCRM

Selanjutnya, unduh package EspoCRM dari website resminya, versi yang akan diunduh di artikel ini adalah 4.7.0.

$ cd /var/www/
$ wget https://www.espocrm.com/downloads/EspoCRM-4.7.0.zip

 

Unzip berkas .zip-nya.

$ unzip EspoCRM-4.7.0.zip

 

Ubah nama direktorinya.

$ mv EspoCRM-4.7.0 espocrm

 

Ubah ownership dari “directory espocrm” ke Nginx.

$ chown -R nginx:nginx /var/www/espocrm

 

Set permission pada file dan direktori EspoCRM.

$ cd /var/www/espocrm
$ find . -type d -exec chmod 755 {} + && find . -type f -exec chmod 644 {} +;
$ find data custom client/custom -type d -exec chmod 775 {} + && find data custom client/custom -type f -exec chmod 664 {} +;
$ chmod 775 application/Espo/Modules client/modules;

 

Create Virtual Host Nginx

Agar saat diakses domain dapat langsung diarahkan ke direktori tertentu, maka kamu perlu membuat pengaturan pada Virtual Host di Nginx.

$ nano /etc/nginx/conf.d/vps188.dewiweb.net.conf  

server {
    listen 80;
    listen [::]:80;
    root /var/www/espocrm;
    index  index.php index.html index.htm;
    server_name  vps188.dewiweb.net www.vps188.dewiweb.net;
    client_max_body_size 100M;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
      }

    location /api/v1/ {
        if (!-e $request_filename){
            rewrite ^/api/v1/(.*)$ /api/v1/index.php last; break;
          }
     }

    location /portal/ {
        try_files $uri $uri/ /portal/index.php?$query_string;
     }

    location /api/v1/portal-access {
        if (!-e $request_filename){
            rewrite ^/api/v1/(.*)$ /api/v1/portal-access/index.php last; break;
          }
     }

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

 

Verifikasikan konfigurasinya untuk mengetahui apakah ada syntax error atau tidak.

$ nginx -t 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

 

Jika statusnya sudah “ok”, restart layanan Nginx.

$ systemctl restart nginx

 

Testing

Langkah terakhir dalam cara install EspoCRM pada Nginx Web Server di CentOS 7 adalah pengetesan hasil. Setelah semua sudah diatur, kamu bisa langsung mengakses nama domain yang kamu gunakan. Jika berhasil, maka tampilannya akan terlihat seperti di bawah ini

Cara Install EspoCRM pada Nginx di CentOS 7

Baca Juga: Cara Install SSL Let’s Encrypt pada Nginx di CentOS 7

Simpulan

EspoCRM sangat berguna untuk kamu yang memiliki kebutuhan mengenai customer relationship, karena EspoCRM sudah  dapat mendukung keperluan sebagai CR manager untuk berbagai jenis industri bisnis. Jika kamu mengikuti instruksi di artikel ini hingga selesai, berarti kamu berhasil menjalankan cara install EspoCRM pada Nginx di CentOS 7.

Demikian artikel cara install EspoCRM pada Nginx di CentOS 7 ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb, ya. Semoga artikel ini membantu, salam sukses online!