Cara Install Candy CBT dengan Nginx di VPS Ubuntu 18.04

Sejak beberapa tahun terakhir, sistem e-learning mulai gencar diterapkan, karena kegiatan belajar mengajar pada dasarnya tidak harus selalu bertatap muka. Hal ini berdampak juga pada peningkatan penggunaan platform Computer Based Test (CBT) untuk melaksanakan ujian daring, misalnya Candy CBT. Di artikel ini, kamu akan mempelajari cara install Candy CBT dengan Nginx di VPS Ubuntu 18.04.

Apa Itu Candy CBT?

Candy CBT adalah salah satu aplikasi atau software ujian berbasis komputer atau daring yang kini banyak digunakan oleh berbagai instansi pendidikan karena fitur dan kegunaannya. Satu hal yang membuatnya lebih menarik, Candy CBT termasuk aplikasi open source yang memungkinkan pengguna untuk mengunduh secara gratis dan memodifikasinya sesuai keperluan.

Cara Install Candy CBT di dengan Nginx di VPS Ubuntu 18.04

Sebelum meng-install Candy CBT di VPS Ubuntu 18.04, pastikan kamu sudah mempersiapkan beberapa hal berikut:

  1. VPS (cloud server) dan domain yang aktif. Jika belum, kamu bisa melakukan pembelian Cloud VPS murah Indonesia dan domain murah terlebih dulu.
  2. Hasil unduhan atau file Candy CBT.

Kemudian, simak beberapa poin penting tutorial cara install Candy CBT yang akan kita lakukan.

  • Update Server
  • Install Nginx (sebagai web server)
  • Install PHP & Konfigurasi PHP-FPM
  • Install & Konfigurasi MariaDB (sebagai database)
  • Download & Konfigurasi CandyCBT
  • Import SQL
  • Install SSL & Konfigurasi Virtual Host
  • Install Firewall
  • Testing

Lalu, simak penjelasan poin penting di atas berikut ini.

Update Server

Pertama, kamu harus memastikan bahwa servermu sudah diperbarui agar package-nya juga ikut diperbarui, setelah itu reboot server dengan perintah berikut.

$ apt-get update -y

$ reboot

 

Install Nginx

Di langkah ini, kamu perlu melakukan instalasi web server, yaitu Nginx.

$ apt-get install nginx -y

 

Nyalakan dan aktifkan on-boot pada Nginx.

$ systemctl start nginx 

$ systemctl enable nginx

 

Proses instalasi Nginx sudah selesai.

Install PHP dan Konfigurasi PHP-FPM

Tambahkan PPA (Personal Package Archives) ondrej/php yang memiliki paket PHP versi 7.1 dan ekstensi PHP lain yang dibutuhkan.

$ apt install software-properties-common

$ add-apt-repository ppa:ondrej/php

$ sudo apt update

 

Setelah itu, install PHP 7.1 dan beberapa ekstensi yang diperlukan menggunakan perintah di bawah ini.

$ apt-get install graphviz aspell ghostscript php7.1-fpm php7.1-cli php7.1-pspell php7.1-curl php7.1-gd php7.1-intl php7.1-mysql php7.1-mysqli php7.1-xml php7.1-xmlrpc php7.1-ldap php7.1-zip php7.1-json php7.1-opcache php7.1-readline php7.1-mbstring php7.1-soap -y

 

Setelah instalasi selesai, maka selanjutnya kamu perlu mengonfigurasi PHP-FPM dengan perintah berikut.

$ nano /etc/php/7.1/fpm/pool.d/www.conf

 

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

user = www-data

group = www-data

listen.owner = www-data

listen.group = www-data

listen.mode = 0660

 

Jika sudah, lakuka 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

 

Setelah itu simpan lalu keluar. Kemudian, PHP 7.1 dan PHP 7.1-FPM di PHP ini perlu diubah.

PHP 7.1

$ nano /etc/php/7.1/cli /php.ini




PHP 7.1-FPM

$ nano /etc/php/7.1/fpm/php.ini

 

Sesuaikan value-nya dengan di bawah ini.

upload_max_filesize = 32M 

post_max_size = 48M 

memory_limit = 512M 

max_execution_time = 600 

max_input_time = 1000

max_input_vars = 3000 

 

Simpan lalu keluar. Kemudian tes hasil konfigurasi tersebut untuk mengetahui hasilnya salah atau benar.

$ php-fpm7.1 -t
NOTICE: configuration file /etc/php/7.1/fpm/php-fpm.conf test is successful

 

Kemudian restart layanan FPM-nya.

$ service php7.1-fpm restart

 

Install dan Konfigurasi MariaDB

Database yang digunakan di sini adalah MariaDB, install MariaDB menggunakan perintah di bawah. Tambahkan juga repository key untuk mendapatkan packages terbaru dari MariaDB.

$ apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

$ add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"

$ apt-get update -y 

$ apt-get install mariadb-server -y

 

Cek versi MariaDB menggunakan perintah di bawah ini.

$ mysql -V

mysql  Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

 

Kemudian start dan enable on-boot.

$ systemctl start mariadb

$ systemctl enable mariadb


MariaDB atau MySQL berjalan pada port 3306, lakukan secure installation.

$ mysql_secure_installation

 

Enter current password for root (enter for none):

OK, successfully used password, moving on…




Switch to unix_socket authentication [Y/n] y

Enabled successfully!

Reloading privilege tables..

 ... Success!




Change the 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!

 

Konfigurasi MariaDB sudah selesai. Langkah selanjutnya adalah membuat database untuk CandyCBT, lalu grant privileges untuk database user tersebut.

$ mysql -u root -p

 

Masukkan password yang tadi digunakan saat melakukan secure installation. Kemudian buat database, database user, dan password, kemudian grant privileges.

CREATE DATABASE candycbtdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'candycbtuser'@'localhost' IDENTIFIED BY 'p4ssw0rd123';

GRANT ALL PRIVILEGES ON candycbtdb.* TO 'candycbtuser'@'localhost' IDENTIFIED BY 'p4ssw0rd123';

FLUSH PRIVILEGES;

 

Jika sudah sampai di sini, berarti kamu telah berhasil membuat user dan database untuk Candy CBT.

Download dan Konfigurasi Candy CBT

Cara install selanjutnya adalah mengunduh Candy CBT di Ubuntu 18.04. Mengingat kami menggunakan Github Repository, maka harus menginstal perintah Git terlebih dulu.

$ apt-get install git -y

 

Kemudian clone Candy CBT dari Github Repository.

$ cd /var/www/

$ git clone https://github.com/sutam21/candycbt

 

Jangan lupa untuk mengubah owner-nya menjadi www-data dan permission directory-nya.

$ chown -R www-data:www-data /var/www/candycbt

$ chmod 755 /var/www/candycbt

 

Ubah konfigurasi database pada file config Candy CBT.

$ cd /var/www/candycbt/config

$ nano config.database.php

 

Ubah pada bagian berikut:

//konfigurasi server database

$host = 'localhost';

$user = candycbtuser;

$pass = 'p4ssw0rd123';

$debe = candycbtdb;


Lalu ubah dari HTTP menjadi HTTPS pada file konfigurasi berikut.

$ cd /var/www/candycbt

$ nano config.default.php

 

Ubah bagian $homeurl = “http://” menjadi:

 $homeurl = "https://"

 

Kemudian pastikan semua $homeurl sudah diubah menjadi HTTPS.

Import SQL

Langkah selanjutnya, kamu perlu melakukan import file SQL Candy CBT yang berada pada path ‘/var/www/candycbt/config.

$ cd /var/www/candycbt/config

$ mysql -u candycbtuser -p candycbtdb < ecandy28r3.sql 

 

Kemudian masukkan password untuk database tersebut.

Install SSL dan Konfigurasi Virtual Host

Instalasi SSL diperlukan untuk menjaga keamanan website dan untuk konfigurasi virtual host. SSL yang digunakan adalah Let’s Encrypt SSL karena gratis dan dapat menjamin keamanan transfer data di website.

Langkah pertama, pastikan domainmu sudah diarahkan ke IP VPS. Jangan lupa matikan layanan Nginx, karena Let’s Encrypt akan melakukan binding port 80.

$ systemctl stop nginx

$ cd /opt/

 

Kemudian clone Let’s Encrypt dari Github Repository.

$ git clone https://github.com/letsencrypt/letsencrypt

$ ./letsencrypt/letsencrypt-auto certonly --standalone 


Lalu ikuti instruksinya. Path sertifikat ada pada:/etc/letsencrypt/live/namadomain/

Full Chain: /etc/letsencrypt/live/namadomain/fullchain.pem

Private Key: /etc/letsencrypt/live/namadomain/privkey.pem

Jika SSL sudah dipastikan terinstal pada domain kamu, maka langkah selanjutnya adalah mengonfigurasi virtual host. Kunjungi direktori Nginx, lalu buat virtual host file candycbt.conf seperti berikut.

$ cd /etc/nginx/

$ nano conf.d/candycbt.conf

 

Tempelkan hasil konfigurasi di bawah ini pada file konfigurasi candycbt.conf. Konfigurasi di bagian SSL akan membuat SSL kamu menjadi Grade A, ubah domainnya menjadi nama domain kamu.

# PHP Upstream Handler

upstream php-handler {

    server unix:/run/php/php7.1-fpm.sock;

}




# Nginx redirect HTTP to HTTPS - candycbtubuntu.dewiweb.net

server {

    listen 80;

    server_name candycbtubuntu.dewiweb.net;

    # enforce https

    return 301 https://$server_name$request_uri;

}




# HTTPS

server {

        listen 443 ssl;     # port default untuk https

    server_name candycbtubuntu.dewiweb.net;




        # Grade A

        # Use certificate and key provided by Let's Encrypt:

        ssl_certificate /etc/letsencrypt/live/candycbtubuntu.dewiweb.net/fullchain.pem;

        ssl_certificate_key /etc/letsencrypt/live/candycbtubuntu.dewiweb.net/privkey.pem;

ssl_session_timeout 5m;

        ssl_protocols TLSv1.2 TLSv1.3;

        ssl_prefer_server_ciphers on;

        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';




        # Root CandyCBT Data Directory

        root /var/www/candycbt;

        rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last;




        location ^~ / {

                try_files $uri $uri/ /index.php?q=$request_uri;

                index index.php index.html index.htm;




                location ~ \.php$ {

                        include fastcgi.conf;

                        fastcgi_pass php-handler;

                }

        }

}

 

Lalu simpan dan keluar. Tes hasil konfigurasi Nginx dan pastikan tidak ada kesalahan atau error, kemudian restart Nginx.

$ nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful




$ systemctl start nginx

 

Jika hasil tes di SSL Labs menunjukkan grade A seperti gambar berikut, maka proses install SSL dan konfigurasi virtual host sudah selesai.

Asset Blog Dewaweb

Install Firewall

Firewall yang digunakan pada cara install Candy CBT di Ubuntu 18.04 ini adalah Config Security & Firewall (CSF). Gunakan perintah berikut.

$ cd /usr/src

$ wget https://download.configserver.com/csf.tgz 

$ tar -xzf csf.tgz

$ cd csf/

$ install.sh

 

Edit csf.conf lalu ubah value make TESTING menjadi 0.

$ nano /etc/csf/csf.conf

make TESTING=’0’

 

Lalu reload CSF dengan perintah di bawah ini.

$ csf -r

 

Testing

Langkah terakhir adalah mengetes hasil instalasi yang sudah dilakukan tadi. Akses website-mu melalui browser, lalu akan muncul halaman untuk login siswa seperti berikut.

Asset Blog Dewaweb

Ketikkan (nama domain)/login.php untuk mengakses halaman pengajar atau Administrator Candy CBT yang terlihat seperti pada gambar berikut.

login admin candy cbt

Default Admin-nya:

username : admin

password : usbk2020

Demi keamanan, sebaiknya ubah password Candy CBT setelah kamu berhasil login ke dashboard Administrator dengan mengklik Pengaturan di menu bar sebelah kiri.

dashboard admin candy cbt

Baca Juga: Cara Install Moodle di VPS CentOS 7

Simpulan

Cara install CandyCBT dapat dilakukan di hosting maupun VPS dengan CentOS atau Ubuntu, tergantung kebutuhanmu dan jumlah siswa yang akan login sekaligus. Silakan hubungi Dewaweb dan informasikan jumlah siswa yang akan login sekaligus dan dapatkan paket cloud hosting spesial untuk CBT dan e-learning.

Kamu tak perlu cemas dengan hal-hal teknis website, karena semua konfigurasi dan keamanan server akan dikelola oleh Dewaweb, jadi kamu bisa fokus pada pengelolaan Candy CBT saja. Keuntungan lainnya, website kamu akan disimpan di datacenter terbaik di Indonesia (Equinix DCI) dengan kapasitas unlimited bandwidth dan konfigurasi cloud server yang dapat menerima ribuan siswa login sekaligus.

Demikian artikel tentang cara install Candy CBT dengan Nginx di VPS Ubuntu 18.04 ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu, Sahabat Dewaweb. Siap memajukan sistem pendidikan di Indonesia? Salam sukses online!