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:
- VPS (cloud server) dan domain yang aktif. Jika belum, kamu bisa melakukan pembelian Cloud VPS murah Indonesia dan domain murah terlebih dulu.
- 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.
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.
Ketikkan (nama domain)/login.php untuk mengakses halaman pengajar atau Administrator Candy CBT yang terlihat seperti pada gambar berikut.
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.
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!