SuiteCRM adalah perangkat lunak CRM (Customer Relationship Management) open source berbasis PHP. Ini adalah turunan dari perangkat lunak CRM populer SugarCRM, dan telah menjadi lebih populer setelah tim di belakang yang terakhir memutuskan untuk menghentikan pengembangan versi gratis. SuiteCRM dinominasikan sebagai perangkat lunak CRM open source terbaik di BOSSIE 2015 dan 2016.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengkonfigurasi SuiteCRM menggunakan Nginx sebagai server Web. Perangkat lunak CRM akan berjalan di bawah tumpukan LEMP dengan HTTPS diaktifkan. Dan untuk tujuan ini, kami akan menggunakan CentOS 7 sebagai OS utama.
Apa yang akan kami lakukan
- Instal server Web Nginx
- Instal dan konfigurasikan PHP-FPM
- Instal dan konfigurasikan MariaDB
- Unduh dan konfigurasikan SuiteCRM
- Instal SuiteCRM melalui penginstal Web
- Konfigurasi akhir
Prasyarat
- Server CentOS 7
- Hak istimewa root
Langkah 1 - Instal server Web Nginx
Langkah pertama yang harus kita lakukan adalah menghubungkan server dan menginstal basic stack untuk SuiteCRM. Hubungkan ke server melalui SSH menggunakan perintah berikut:
ssh [email protected]
Setelah terhubung sebagai pengguna root, kita perlu menginstal repositori pihak ketiga di sistem kita. Secara khusus, kita perlu menginstal repositori EPEL (Extra Package for Enterprise Linux) pada sistem sebelum menginstal Nginx.
Instal repositori EPEL menggunakan perintah yum dengan cara berikut:
yum -y install epel-release
Sekarang kita dapat menginstal server web Nginx pada sistem.
yum -y install nginx
Jika penginstalan selesai, mulai layanan dan aktifkan untuk berjalan secara otomatis pada saat boot menggunakan perintah systemctl seperti yang ditunjukkan di bawah ini.
systemctl start nginx
systemctl enable nginx
Server web Nginx sekarang terinstal, dan secara default, itu berjalan pada port 80. Periksa menggunakan perintah netstat atau curl.
netstat -plntu
curl -I localhost
Pastikan port 80 dalam status 'LISTEN', dan perintah curl memberikan 200 kode status HTTP pada outputnya.
Langkah 2 - Instal dan konfigurasikan PHP-FPM
Pada langkah ini, kita akan menginstal dan mengkonfigurasi PHP-FPM versi 7 di server CentOS 7. Secara default, centOS tidak menyediakan repositori untuk PHP versi 7. Jadi kita perlu menambahkan repositori yang berbeda untuk instalasi PHP-FPM 7.
Tambahkan 'webtatic' repositori PHP 7 baru ke sistem menggunakan perintah rpm.
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Sekarang instal paket dan ekstensi PHP 7 menggunakan perintah yum seperti yang ditunjukkan di bawah ini.
sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml
Jika instalasi selesai, edit file konfigurasi default 'php.ini' menggunakan vim.
vim /etc/php.ini
Ubah ukuran file unggahan maksimum untuk penginstalan SuiteCRM menjadi 100MB. Setidaknya, SuiteCRM membutuhkan lebih dari 6 MB.
upload_max_filesize = 100M
Batalkan komentar pada baris CGI berikut dan ubah nilainya menjadi 0.
cgi.fix_pathinfo=0
Untuk konfigurasi jalur sesi, batalkan komentar pada baris dan ubah jalur ke '/var/lib/session' seperti yang ditunjukkan di bawah ini.
session.save_path = "/var/lib/php/session"
Itu dia. Simpan perubahan dan keluar dari vim.
Sekarang buat direktori baru untuk jalur sesi dan ubah izin kepemilikan direktori menjadi pengguna dan grup 'nginx'.
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session
Selanjutnya, kita perlu mengedit konfigurasi php-fpm. Untuk ini, buka direktori '/etc/php-fpm.d' dan edit file konfigurasi www.conf.
cd /etc/php-fpm.d/
vim www.conf
Sekarang ubah baris pengguna dan grup menjadi 'nginx'.
user = nginx
group = nginx
Alih-alih menggunakan port sistem, PHP-FPM akan berjalan di bawah file soket unix.
Ubah baris 'dengarkan':
listen = /var/run/php-fpm/php-fpm.sock
Tetapkan izin untuk file soket Unix dan kepemilikan file soket seperti yang ditunjukkan di bawah ini.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Itu dia. Simpan perubahan dan keluar dari editor.
Sekarang mulai layanan PHP-FPM dan tambahkan untuk memulai secara otomatis pada saat boot.
systemctl start php-fpm
systemctl enable php-fpm
Dengan ini, PHP-FPM diinstal dan menjalankan file socket.
Anda dapat memeriksanya menggunakan perintah netstat:
netstat -pl | grep php
Pastikan Anda melihat file php-fpm.sock.
Langkah 3 - Instal dan Konfigurasi MariaDB
Pada langkah ini, kita akan menginstal MariaDB, kemudian memulai dan mengaktifkannya untuk diluncurkan setiap kali sistem boot. Dan terakhir, kita akan membuat database dan pengguna baru untuk instalasi SuiteCRM.
Instal mariadb dari repositori CentOS menggunakan perintah yum berikut.
yum install -y mariadb mariadb-server
Mulai layanan MariaDB dan aktifkan untuk meluncurkan waktu boot menggunakan perintah di bawah ini.
systemctl start mariadb
systemctl enable mariadb
Jadi MariaDB sekarang terinstal dan berjalan. Sekarang, kita perlu mengkonfigurasi kata sandi root menggunakan perintah 'mysql_secure_installation'.
mysql_secure_installation
Anda akan ditanya tentang konfigurasi, ketik 'Y' dan tekan 'Enter'.
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Jadi kata sandi root MariaDB telah dikonfigurasi.
Selanjutnya, kita perlu membuat database baru dan pengguna baru untuk instalasi SuiteCRM. Untuk ini, masuk ke shell MySQL dengan 'root' pengguna dan kata sandi Anda.
mysql -u root -p
Buat database baru bernama 'suitecrm_db' dan pengguna baru 'crmadmin' dengan kata sandi 'hakase-labs123'. Semua ini dapat dilakukan dengan menggunakan kueri mysql di bawah ini.
CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;
Jadi konfigurasi database untuk instalasi SuiteCRM telah selesai.
Langkah 4 - Unduh dan Konfigurasikan SuiteCRM
Pada langkah ini, kita akan melakukan beberapa tugas untuk instalasi SuiteCRM. Kami akan mengunduh kode sumber SuiteCRM, mengonfigurasi Firewalld, Membuat SSL Letsencrypt baru, dan mengonfigurasi host virtual nginx untuk SuiteCRM. Jadi mari kita mulai.
Unduh SuiteCRM
Jika belum, instal git di sistem Anda menggunakan perintah yum di bawah ini.
yum -y install git
Sekarang buka direktori '/opt' dan unduh kode SuiteCRM menggunakan perintah git seperti yang ditunjukkan di bawah ini.
cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm
Setelah itu, buat direktori cache, ubah izin untuk beberapa file dan direktori di direktori suitecrm, lalu ubah pemilik semua kode suitecrm menjadi pengguna dan grup 'nginx'.
cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown nginx:nginx -R /opt/suitecrm
Jadi kode suiteCRM telah diunduh ke server pada direktori '/opt/suitecrm/'.
Konfigurasi Firewalld
Jika Anda tidak menjalankan Firewalld di server Anda, instal menggunakan perintah berikut.
yum -y install firewalld
Mulai layanan dan aktifkan untuk berjalan pada saat boot.
systemctl start firewalld
systemctl enable firewalld
Selanjutnya, kita perlu membuka port baru HTTP dan HTTPS. Ini digunakan untuk akses SuiteCRM. Jalankan perintah firewall-cmd berikut untuk ini.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
Sekarang muat ulang aturan firewalld menggunakan perintah berikut.
firewall-cmd --reload
Jadi sekarang, port HTTP dan HTTPS baru telah ditambahkan ke Firewalld. Jika Anda ingin melihat konfigurasi detail, jalankan perintah di bawah ini.
firewall-cmd --list-all
Buat Letsencrypt SSL Baru
Dalam tutorial ini, kita akan menggunakan SSL untuk akses SuiteCRM. Dan kami akan menggunakan sertifikat SSL gratis dari letsencrypt untuk tujuan itu.
Untuk membuat sertifikat SSL letsencrypt baru, pertama-tama kita perlu menginstal alat perintah letsencrypt 'certbot' ke sistem kita. Ini tersedia di repositori CentOS. Instal certbot menggunakan perintah yum berikut.
yum -y install certbot
Ketika instalasi certbot selesai, buat file sertifikat SSL untuk nama domain suiteCRM 'suitecrm.hakase-labs.co'.
Jalankan perintah di bawah ini untuk menghasilkan file sertifikat SSL.
certbot certonly --standalone -d suitecrm.hakase-labs.co
Anda akan ditanya tentang alamat email untuk memperbarui pemberitahuan - ketik email Anda dan tekan Enter untuk melanjutkan.
Untuk TOS Letsencrypt, ketik 'A' untuk setuju dan tekan Enter lagi. Dan untuk kueri alamat email berbagi, ketik 'N' dan tekan Enter.
Ketika pembuatan sertifikat selesai, Anda akan mendapatkan hasil seperti di bawah ini.
File sertifikat baru dibuat di direktori '/etc/letsencrypt/live/domain.com'.
Konfigurasi SuiteCRM Nginx Virtual host
Buka direktori konfigurasi Nginx '/etc/nginx', dan buat file suitecrm.conf file baru di direktori conf.d menggunakan editor Vim.
cd /etc/nginx/
vim conf.d/suitecrm.conf
Di sana, rekatkan virtual host SuiteCRM Nginx di bawah.
# Server Config - hakase-labs
server {
listen 80;
server_name suitecrm.hakase-labs.co;
# Automatically redirect to HTTPS
return 301 https://$host$request_uri;
}
# Nginx SSL for SuiteCRM
server {
server_name suitecrm.hakase-labs.co;
# Enable http2
listen 443 http2 ssl;
# SSL Config
ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
client_max_body_size 50M;
index index.php index.html index.htm;
root /opt/suitecrm;
location / {
root /opt/suitecrm;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;
location = /50x.html {
root /usr/share/nginx/html;
}
## Images and static content is treated different
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
access_log off;
expires max;
root /opt/suitecrm;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Itu dia. Simpan perubahan dan keluar dari Vim.
Sekarang uji konfigurasi nginx dan pastikan tidak ada kesalahan. Setelah selesai, mulai ulang layanan.
nginx -t
systemctl restart nginx
Dengan ini, konfigurasi nginx untuk penginstalan SuiteCRM telah selesai.
Langkah 5 - Penginstal Web SuiteCRM
Buka browser Web Anda dan kunjungi nama domain SuiteCRM:'suitecrm.hakase-labs.co'.
Anda akan diarahkan ke koneksi HTTPS install.php, dan Anda akan mendapatkan halaman tentang Lisensi GNU AFFERO. Centang kotak 'Saya Setuju' dan klik 'Berikutnya'.
Pada halaman lingkungan sistem, pastikan semua hasilnya 'OK'.
Dan klik 'Berikutnya' untuk melanjutkan.
Selanjutnya adalah konfigurasi admin dan database. Ketik info database Anda, seperti dbname, dbuser, dan dbpassword. Untuk konfigurasi admin, ketik nama pengguna, email, dan kata sandi Anda.
Gulir ke bawah dan klik 'Berikutnya' untuk melanjutkan penginstalan SuiteCRM.
Tunggu beberapa saat, ketika instalasi selesai, dan Anda akan diarahkan ke halaman login seperti gambar di bawah ini.
Pada halaman ini, ketik user admin dan password, lalu tekan tombol 'Login'.
Dan Anda akan mendapatkan Dasbor SuiteCRM seperti yang ditunjukkan di bawah ini.
Jadi SuiteCRM telah diinstal.
Langkah 6 - Konfigurasi akhir
Pada langkah terakhir ini, kita perlu menambahkan konfigurasi ke cronjob.
Pada dasarnya, kita perlu membuat cron baru sebagai pengguna dan grup nginx.
sudo crontab -e -u nginx
Dan paste konfigurasi berikut.
* * * * * cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1
Simpan dan keluar.
Itu dia. Instalasi SuiteCRM dengan server web Nginx di CentOS 7 telah selesai.