Menginstall Moodle di Ubuntu 20.04

PENGANTAR

Moodle adalah opensource, sistem manajemen pembelajaran ramah seluler (LMS) yang memudahkan untuk membuat dan mendistribusikan kursus dan materi pelatihan Anda sendiri untuk tujuan apa pun.

Dikesempatan kali ini kami akan menginstall Moodle di ubuntu 20.04 di server sendiri.

STEP PERTAMA

Menginstall Nginx:

$ sudo apt install nginx

di bawah ini adalah perintah untuk menstop, memulai, dan mengaktifkan Nginx:

$ sudo systemctl stop mariadb.service
$ sudo systemctl start mariadb.service
$ sudo systemctl enable mariadb.service

STEP KEDUA

Menginstall MariaDB Database Server:

$ sudo apt-get install mariadb-server mariadb-client

Lakukan command di bawah ini untuk menstop, memulai, dan mengaktifkan MariaDB untuk selalu memulai saat server melakukan booting:

$ sudo systemctl stop mariadb.service
$ sudo systemctl start mariadb.service
$ sudo systemctl enable mariadb.service

Next, mengamankan server database dengan katasandi root:

$ sudo mysql_secure_installation

Setelah menjalankan command di atas, ikuti langkah berikut:

  • Enter current password for root (enter for none): Just press the Enter
  • Set root password? [Y/n]: Y
  • New password: Enter password
  • Re-enter new password: Repeat 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

Next, kami mengtest apakah MariaDB berjalan atau tidak:

$ sudo mysql -u root -p

Tulisa katasandi root nya:

Jika seusai dengan contoh di atas, maka MariaDB siap di gunakan.

Next, membuka file konfigurasi MariaDB dengan command berikut:

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

Lalu, tambakan baris di bawah ini dan save:

[mysqld]

#
# * Basic Settings
#
user                    = mysql
pid-file                = /run/mysqld/mysqld.pid
socket                  = /run/mysqld/mysqld.sock
#port                   = 3306
basedir                 = /usr
datadir                 = /var/lib/mysql
tmpdir                  = /tmp
lc-messages-dir         = /usr/share/mysql
#skip-external-locking

innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = ON

Lalu restart MariaDB:

$ sudo systemctl restart mariadb.service

STEP KETIGA

Menginstall PHP 7.4

Sebelum itu kami tambahkan PPA pihak ketiga ke ubuntu:

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php

Next, update dan upgrade php 7.4:

$ sudo apt update

Dan install PHP 7.4:

$ sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-soap php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip

Setelah menginstall PHP 7.4, buka file konfigurasi dasar supaya moodle berjalan dengan baik:

$ sudo vim /etc/php/7.4/fpm/php.ini

Sesuaikan dengan konfigurasi di bawah ini:

STEP KEEMPAT

Membuat Database Moodle:

$ sudo mysql -u root -p
mysql> CREATE DATABASE moodle;
mysql> CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'new_password_here';
mysql> GRANT ALL ON moodle.* TO 'moodleuser'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

STEP KELIMA

Download moodle:

$ sudo apt install git curl
$ cd /var/www/
$ sudo git clone -b MOODLE_38_STABLE git://git.moodle.org/moodle.git moodle

Kemudian jalankan perintah di bawah ini untuk mengatur izin yang benar agar Moodle berfungsi:

$ sudo mkdir -p /var/www/moodledata
$ sudo chown -R www-data:www-data /var/www/
$ sudo chmod -R 755 /var/www/
$ sudo chown www-data:www-data /var/www/moodledata

STEP KEENAM

Konfigurasi Nginx.

Jalankan perintah di bawah ini untuk membuat file VirtualHost baru bernama moodle di direktori /etc/nginx/sites-available/:

$ sudo vim /etc/nginx/sites-available/moodle

Salin dan tempel Script di bawah ini lalu save:

server {
    listen 80;
    listen [::]:80;
    root /var/www/moodle;
    index  index.php index.html index.htm;
    server_name  intelix.my.id www.intelix.my.id;

    client_max_body_size 100M;
    autoindex off;
    location / {
        try_files $uri $uri/ =404;
    }

    location /dataroot/ {
      internal;
      alias /var/www/moodledata/;
    }

    location ~ [^/].php(/|$) {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Setelah menyimpan script di atas, jalankan perintah di bawah ini untuk mengaktifkan situs baru, lalu restart server Nginx:

$ sudo ln -s /etc/nginx/sites-available/moodle /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx.service

STEP KETUJU

Mengamankan Nginx dengan Let's Encrypt.

Installing certbot:

$ sudo apt install certbot python3-certbot-nginx

Mengonfirmasi konfigurasi Nginx:

$ sudo vim /etc/nginx/sites-available/intelix.my.id

Reload Nginx untuk memuat konfigurasi baru:

$ sudo systemctl reload nginx

Next, jalankan certbot nya:

$ sudo certbot --nginx -d intelix.my.id -d www.intelix.my.id

Lalu akan muncul seperti ini:

Pilih pilihan Anda lalu tekan ENTER dan Nginx akan memuat ulang untuk mengambil pengaturan baru. certbot akan diakhiri dengan pesan yang memberi tahu Anda bahwa prosesnya berhasil:

Jika sudah, jalankan command di bawah ini:

$ sudo vim /etc/nginx/sites-available/moodle

Salin dan tempel script berikut ini:               

server {
    listen 80;
    listen [::]:80;
    server_name *.intelix.my.id;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl http2;
    listen [::] 443 ssl http2;
    root /var/www/moodle;
    index  index.php index.html index.htm;
    server_name  intelix.my.id www.intelix.my.id;

    if ($host != "intelix.my.id") {
      return 301 https://intelix.my.id$request_uri;
    }

    ssl_certificate /etc/letsencrypt/live/intelix.my.id/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/intelix.my.id/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/intelix.my.id/chain.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers 'TLS13+AESGCM+AES128:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-
    ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-
    GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-
    AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-
    AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-
    SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-
    RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-
    SHA:DES-CBC3-SHA:!DSS';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;
    ssl_ecdh_curve X25519:sect571r1:secp521r1:secp384r1;

    client_max_body_size 100M;
    autoindex off;
    location / {
        try_files $uri $uri/ =404;
    }

    location /dataroot/ {
       internal;
       alias /var/www/moodledata/;
    }

    location ~ [^/].php(/|$) {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Setelah di atas, restart Nginx dan PHP 7.4-FPM:

$ sudo systemctl reload nginx
$ sudo systemctl reload php7.4-fpm

Selanjutnya, buka browser Anda dan ramban ke nama domain server. Anda akan melihat wizard pengaturan Moodle untuk menyelesaikan. Silakan ikuti wizard dengan hati-hati:

https://intelix.my.id/install.php

Ikuti instruksi untuk menginstall:

pilih drive database [MariaDB] dan klik Next untuk melanjutkan:

Selanjutnya, ketik info database yang Anda buat di atas, termasuk nama database, nama pengguna dan kata sandi.

Kemudian klik Next untuk melanjutkan:

Di sinilah Anda mengetikkan nama pengguna admin, membuat kata sandi, dan detail lainnya:

Setelah selesai, Moodle sudah diinstal dan siap digunakan. Login sebagai admin dan mulai mengonfigurasi situs Anda:

Sekian infromasi mengenai "Menginstall moodle di ubuntu 20.04" semoga bermanfaat.

Terimakasih.