Nur Hamim
Nur Hamim Anak desa yang gemar berkomunitas, suka menulis dan mencari hal baru seputar Unix/Linux dan Cloud. Saat ini sedang menempuh pendidikan S1 TI di Unindra dan kebetulan bekerja di PT Biznet GIO Nusantara

Cara Instalasi Moodle Menggunakan Nginx di CentOS 8


Cara Instalasi Moodle Menggunakan Nginx di CentOS 8

Moodle salah satu platform yang biasa digunakan untuk membangun Learning Management System (LMS), moodle cukup power full dan bahkan saat ini sangat banyak institusi pendidikan yang menggunakan moodle sebagai platform belajar mengajar secara daring.

Moodle sendiri open source artinya Anda dapat dengan bebas untuk menggunakan, melakukan kustomisasi dan yang lainnya.

Moodle juga sudah tersedia di applikasi android maupun iOS dengan begitu sistem pembelajaran daring dapat dilakukan melalui Apps dengan simple dan mudah digunakan tentunya.

Untuk mengetahui system requirement hardware software moodle silakan klik link berikut ini: Requirements.

Untuk mengikuti tutorial ini pastikan Anda sudah melakukan instalasi web server nginx, database mariadb/mysql dan php 7.x, jika belum Anda dapat mengikuti tutorial berikut, terlebih dahulu.

Jika Anda sudah melakukan instalasi, selanjutnya pastikan semua service nya running

1
2
3
4
5
6
7
8
9
[root@tutorial ~]#
[root@tutorial ~]# systemctl status nginx |grep active
   Active: active (running) since Tue 2020-08-25 15:01:08 UTC; 12h ago
[root@tutorial ~]# systemctl status php-fpm |grep active
   Active: active (running) since Wed 2020-08-26 03:54:44 UTC; 31s ago
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
[root@tutorial ~]# systemctl status mariadb |grep active
   Active: active (running) since Tue 2020-08-25 07:37:13 UTC; 20h ago
[root@tutorial ~]#

Disini kami menggunakan php versi 7.4 silakan install beberapa module berikut

1
2
3
4
5
6
7
8
9
10
[root@tutorial ~]#
[root@tutorial ~]# php --version
PHP 7.4.9 (cli) (built: Aug 4 2020 08:28:13) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies
[root@tutorial ~]

[root@tutorial ~]#
[root@tutorial ~]# dnf install php php-ldap php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt php-curl php-pspell php-zip php-common -y

Selanjutnya membuat database Moodle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@tutorial nginx]#
[root@tutorial nginx]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 186
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'passwordmoodle';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> exit
Bye
[root@tutorial nginx]#

Noted: Harap di catat nama, user dan password database diatas, nantinya informasi tersebut digunakan pada saat ini instalasi.

Selanjutnya menentukan direktori root moodle dan unduh moodle versi latest (stabil) melalui website resmi moodle berikut: Latest release

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@tutorial ~]#
[root@tutorial ~]# cd /usr/share/nginx/
[root@tutorial nginx]#
[root@tutorial nginx]# wget https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.zip
--2020-08-26 03:58:56-- https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.zip
Resolving download.moodle.org (download.moodle.org)... 104.22.65.81, 104.22.64.81, 172.67.26.233, ...
Connecting to download.moodle.org (download.moodle.org)|104.22.65.81|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 74036903 (71M) [application/zip]
Saving to: ‘moodle-latest-39.zip’

moodle-latest-39.zip 100%[=================================================>] 70.61M 113MB/s in 0.6s

2020-08-26 03:58:58 (113 MB/s) - ‘moodle-latest-39.zip’ saved [74036903/74036903]

[root@tutorial nginx]#

Unzip file moodle yang sudah di unduh

1
2
[root@tutorial nginx]#
[root@tutorial nginx]# unzip moodle-latest-39.zip

Berikan hak akses dan owner ke direktori moodle

1
2
[root@tutorial nginx]# chown -R nginx:nginx moodle
[root@tutorial nginx]# chmod -R 755 moodle

Selanjutnya membuat moodledata dan berikan hak akses 777

1
2
3
4
[root@tutorial nginx]#
[root@tutorial nginx]# mkdir moodledata
[root@tutorial nginx]# chmod 777 moodledata/
[root@tutorial nginx]# chown -R nginx:nginx moodledata/

Selanjutnya membuat server block nginx moodle

1
2
[root@tutorial nginx]#
[root@tutorial nginx]# vim /etc/nginx/conf.d/moodle.conf

Berikut full konfigurasi server block moodle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
        listen 80;
        server_name e-learning.nurhamim.my.id;
        root /usr/share/nginx/moodle;
        index index.php index.html index.htm;

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

        location ~ [^/]\.php(/|$) {
                root /usr/share/nginx/moodle;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_index index.php;
                fastcgi_pass unix:/run/php-fpm/www.sock;
                include fastcgi_params;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ~ /\.ht {
                deny all;
        }
}

Noted: Disini kami menggunakan unix socket tidak menggunakan tcp socket.

Jika sudah selanjutnya pastikan konfigurasi nginx tidak ada yang salah

1
2
3
4
5
[root@tutorial nginx]#
[root@tutorial nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@tutorial nginx]#

Jika sudah silakan reload nginx dan php-fpm

1
2
3
[root@tutorial nginx]#
[root@tutorial nginx]# systemctl reload nginx
[root@tutorial nginx]# systemctl reload php-fpm

Disini kami menggunakan subdomain e-elearning.nurhamim.my.id untuk URL moodle pastikan Anda telah membuat A record di DNS management domain

Verifikasi bisa menggunakan ping

Silakan akses URL diatas melalui browser

Pilih Bahasa instalasi yang ingin digunakan, Next

Pastikan direktori moodledata sudah sesuai, Next

Pilih database yang Anda gunakan, disini kami menggunakan MariaDB, Next

Konfigurasi database Anda, Next

Klik Continue untuk lanjut ke tahap selanjutnya

verifikasi module php, diatas terdapat fambar warning dapat diabaikan karena saat ini instalasi tanpa menggunakan SSL (HTTPS), Continue

Tunggu proses instalasi sampai selesai, jika sudah silakan klik Continue

Isi General informasi dari E-Learning Moodle Anda, dan input juga username dan password Admin Moodle, Update profile

Disini Anda dapat isi name sesuai keinginan Anda , Save changes

Selamat Moodle Anda sudah berhasil diinstall, klik menu Dashboard untuk melihat Dashboard Admin Moodle

Berikut contoh home page default moodle

Dan Berikut contoh home page login moodle

Selamat mencoba 😁

comments powered by Disqus