Cara Install Moodle di VPS Ubuntu 18.04

Moodle seringkali digunakan sebagai Learning Management System (LMS) yang biasa dipakai untuk melakukan pembelajaran online, alias e-learning. Usai mempelajari Cara Install Moodle di VPS CentOS 7, kali ini, kamu akan mempelajari cara install Moodle di VPS Ubuntu 18.04, lengkap dengan cara memasang SSL dan konfigurasi Virtual Host.

Moodle

Moodle adalah salah satu CMS (Content Management System) yang ditujukan untuk media pembelajaran online, alias e-learning. Ada dua dashboard yang ditampilkan oleh Moodle, yaitu untuk pengajar (guru atau dosen) dan murid. Di platform ini, pengajar dapat menambahkan materi untuk kelas online, membuat kuis, forum, atau assignment (tugas).

LMS ini termasuk open source sehingga bisa diinstal dan dimodifikasi sesuai kebutuhan. Kamu juga bisa membangun website e-learning sendiri tanpa perlu repot merekrut developer untuk membangun sistem ini, karena cukup dengan domain dan hosting, sistem e-learning sudah dapat dibangun.

e-Learning

e-Learning adalah sebuah konsep pembelajaran yang memanfaatkan teknologi dalam prosesnya sehingga dapat diharapkan konsep ini bisa diakses di seluruh lokasi hanya dengan koneksi internet dan akses ke website e-learning saja.

Sistem operasi yang digunakan kali ini adalah Ubuntu 18.04. Sedikit berbeda dengan versi lama, di Ubuntu versi ini kamu bisa menggunakan apt-command tanpa harus apt-get command.

Persiapan

  1. Pastikan kamu sudah memiliki cloud server/VPS dan domain. Jika belum, kamu bisa order Cloud VPS Murah Indonesia dan domain murah terlebih dulu.
  2. Akses root ke VPS.

Cara Install Moodle di VPS Ubuntu 18.04 – Update 2020

Ada beberapa langkah yang perlu dilakukan pada cara install Moodle di VPS Ubuntu ini, berikut ini adalah ringkasannya:

  • Update Server
  • Install Nginx (sebagai web server)
  • Install PHP & Konfigurasi PHP-FPM
  • Install dan Konfigurasi MariaDB (sebagai database)
  • Unduh dan Konfigurasi Moodle
  • Install SSL & Konfigurasi Virtual Host
  • Install Firewall
  • Install Moodle
  • Testing

Update Server

Pertama, kamu perlu memastikan bahwa server sudah diperbarui agar package-nya juga ikut diperbarui, lalu lakukan reboot server.

 

$ apt-get update -y
$ reboot

Install Nginx

Di langkah ini, kamu perlu menginstal web server yang diperlukan, yaitu Nginx.

 

$ apt-get install nginx -y

 

Start lalu enable on-boot pada Nginx.

 

$ systemctl start nginx 

$ systemctl enable nginx

 

Proses install Nginx sudah selesai.

Install PHP & Konfigurasi PHP-FPM

Moodle versi 3.7 atau lebih memerlukan PHP versi minimal 7.1. Tambahkan PPA (Personal Package Archives) ondrej/php yang memiliki package PHP versi 7.1 dan ekstensi PHP lain yang diperlukan.

 

$ apt install software-properties-common

$ add-apt-repository ppa:ondrej/php

$ sudo apt update

Install PHP 7.1 dan beberapa ekstensi yang diperlukan menggunakan perintah dibawah 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 konfigurasi PHP-FPM.

 

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

 

Mengingat web server yang digunakan adalah Nginx, maka ubah user dan group menjadi “www-data” (tanpa tanda kutip) seperti berikut.

 

user = www-data

group = www-data

listen.owner = www-data

listen.group = www-data

listen.mode = 0660


Setelah itu, uncomment pada security limit extension, hanya 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. Kemudian, pada php.ini di PHP 7.1 dan PHP 7.1-FPM 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 perintah berikut:

 

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. Setelah itu, tes hasil konfigurasi untuk mengetahui apakah salah atau sudah benar.

 

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

 

Jika sudah, restart services FPM-nya.

$ service php7.1-fpm restart

 

Install dan Konfigurasi MariaDB

Sebelum menjalankan cara install Moodle, kamu perlu menginstal MariaDB terlebih dulu. Di artikel ini kami menggunakan MariaDB sebagai database, cara install-nya adalah dengan menggunakan perintah di bawah. Jangan lupa, 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

 

Jika ingin mengecek versi MariaDB, gunakan 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

 

Jika sudah, start dan aktifkan on-boot.

 

$ systemctl start mariadb

$ systemctl enable mariadb

 

MariaDB maupun 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!


Jika sudah sampai sini, berarti instalasi MariaDB sudah selesai. Langkah selanjutnya adalah membuat database untuk Moodle, lalu izinkan privileges untuk database user tersebut.

 

$ mysql -u root -p

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

 

CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

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

GRANT ALL PRIVILEGES ON moodledb.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'p4ssw0rd123';

FLUSH PRIVILEGES;

 

Jika sudah sampai di langkah ini berarti kamu sudah berhasil membuat user dan database untuk Moodle.

Unduh dan Konfigurasi Moodle

Langkah selanjutnya adalah mengunduh dan mengonfigurasi Moodle. Langkah pertama, kamu perlu mengunjungi direktori /var/www/ lalu wget Moodle-nya.

 

$ cd /var/www/

$ wget https://download.moodle.org/download.php/direct/stable33/moodle-latest-33.tgz

$ tar -xzf moodle-latest-33.tgz

 

Kemudian buat direktori baru yaitu, Moodledata dan pastikan owner, user, dan grup dari direktori tersebut menggunakan www-data, jangan lupa ubah juga permission-nya.

 

$ mkdir -p moodledata

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

$ chmod 755 /var/www/moodle/

$ chown www-data /var/www/moodledata

 

Proses unduh dan konfigurasi Moodle sudah selesai.

Install SSL dan Konfigurasi Virtual Host

Secure Socket Layer (SSL) perlu kamu gunakan sebelum mengoperasikan website e-learning lebih lanjut. Sebab, SSL dapat berfungsi sebagai pengaman pertukaran transfer data antara server (website) dengan receiver, alias para pengguna website. Selain itu, SSL sudah lebih aman pada sisi website dan juga menggunakan konfigurasi virtual host.

Untuk SSL, kami menggunakan SSL Let’s Encrypt dari Dewaweb yang sudah dijamin mendapatkan grade minimal A di SSL Labs, pastikan domain kamu sudah diarahkan ke alamat IP VPS. Jangan lupa, matikan layanan Nginx, karena Let’s Encrypt akan melakukan binding port 80.

 

$ systemctl stop nginx

$ cd /opt/


Kemudian gandakan (clone) Let’s Encrypt dari Github Repositories.

 

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

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

 

Setelah itu, 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 Let’s Encrypt sudah terinstal pada domainmu, maka langkah selanjutnya adalah konfigurasi virtual host.

 

Ke direktori Nginx, lalu buat virtual host file moodle.conf

$ cd /etc/nginx/

$ nano conf.d/moodle.conf

 

Salin lalu tempel konfigurasi di bawah ini pada file konfigurasi moodle.conf. Konfigurasi di bagian SSL akan membuat SSL kamu menjadi Grade A, ubah domainnya sesuaikan dengan domain kamu.

 

# PHP Upstream Handler

upstream php-handler {

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

}




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

server {

    listen 80;

    server_name moodleubuntu.dewiweb.net;

    # enforce https

    return 301 https://$server_name$request_uri;

}




# HTTPS

server {

        listen 443 ssl;     # port default untuk https

    server_name moodleubuntu.dewiweb.net;




        # Grade A

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

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

        ssl_certificate_key /etc/letsencrypt/live/moodleubuntu.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 Moodle Data Directory

        root /var/www/moodle;

        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;

                }

        }

}


Simpan lalu keluar. Tes konfigurasi Nginx dan pastikan bahwa tak ada kerusakan atau eror, 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 dites pada SSL Labs maka hasilnya akan seperti di bawah ini.

cara install moodle vps ubuntu 18.04 ssl repost

Cara install Moodle hampir selesai dan hingga saat ini instalasi SSL dan konfigurasi virtual host sudah selesai.

Install Firewall

Di Firewall ini kami menggunakan Config Security & Firewall (CSF).

 

$ 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’

 

Simpan lalu keluar.

 

Reload CSF dengan perintah di bawah ini.

 

$ csf -r

Install Moodle

Ini dia cara install Moodle yang perlu dilakukan. Langkah pertama, akses domain yang kamu gunakan ke browser.

Asset Blog Dewaweb

Setelah itu, pilih bahasa “English”, kemudian klik Next.

cara install Moodle confirm paths

Data Directory menggunakan /var/www/moodledata, kemudian klik Next.

Asset Blog Dewaweb

Di database driver, pilih database server yang kamu gunakan, jika MariaDB, maka pilih MariaDB, lalu klik Next.

Asset Blog Dewaweb

Sesuaikan pengaturan database, sesuaikan dengan yang sebelumnya dibuat secara manual di server.

Database Settings:

Database host: localhost

Database name: moodledb

Database user: moodleuser

Database password: p4ssw0rd123

Table prefix: mdl_

Database port: 3306

Unix Socket: Dikosongkan saja.

 

Setelah itu klik Next.

Asset Blog Dewaweb

Konfirmasi dengan mengklik tombol “Continue”.

cara install moodle server check ok

Moodle akan melakukan server check, pastikan seluruh statusnya sudah OK, lalu klik Continue.

Asset Blog Dewaweb

Lalu Moodle akan melakukan install, pastikan semuanya Success. Jika sudah, klik Continue.

cara install moodle fill data

Di Admin Configuration, masukkan data-data seperti Nama, Email, dan Password sesuai kebutuhanmu, kemudian klik Update Profile.

Pastikan password-mu mengandung huruf kapital, simbol, dan angka agar dapat dianggap “Strong” dan disetujui oleh Moodle.

Asset Blog Dewaweb

Pada Front Page settings, isi sesuai dengan kebutuhanmu, jika sudah klik Save Changes.

cara install moodle admin user

Jika sudah sampai sini, maka proses install Moodle di VPS Ubuntu 18.04 sudah berhasil dan selesai.

Testing

Meski cara install Moodle sudah selesai, namun kamu harus tetap melakukan tes akses terlebih dulu. Ikuti cara berikut ini.

cara install Moodle homepage test success

Ini adalah homepage Moodle kamu. Klik sebelah kanan atas untuk login atau akses URL namadomainmu.com/login/.

cara install moodle homepage moodle

Masukkan username dan password yang kamu buat sebelumnya, lalu klik Login.

cara install moodle user page

Gambar di atas adalah tampilan dari User Page.

cara install moodle admin page

Lalu, gambar di atas ini adalah tampilan Admin Page.

Pada tahap ini, proses install Moodle di VPS Ubuntu 18.04 telah selesai.

Simpulan

Cara install Moodle di VPS Ubuntu 18.04 memang sedikit berbeda dari CentOS 7, karena dari segi packages dan perintah juga berbeda. Namun, tidak terlalu berbeda dan tidak terlalu sulit jika kamu mengikuti langkahnya dari awal hingga akhir.

Kalau kamu tidak ingin repot melakukan instalasi seperti ini, kamu bisa menghubungi Dewaweb dan dapatkan paket khusus cloud hosting untuk CBT dan e-learning agar semua konfigurasi dan keamanan server dikelola oleh Dewaweb. Alhasil kamu bisa lebih fokus mengelola Moodle.

Selain itu, data aplikasi Moodle milikmu akan disimpan di data center terbaik di Indonesia (Equinix DCI) dengan kapasitas unlimited bandwidth dan konfigurasi cloud server yang sudah dioptimalkan untuk bisa menangani ribuan siswa yang login sekaligus. Yuk, segera hubungi tim support Dewaweb untuk mendapatkan harga terbaik atau sekadar menanyakan informasi.

Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb, ya. Semoga artikel ini membantu, salam sukses online!