Cara Install Platform Pembelajaran Moodle dengan Nginx di CentOS 8


Moodle adalah sistem pengelolaan pembelajaran paling populer di dunia untuk membangun situs pembelajaran online yang tangguh. Ini menampilkan berbagai kegiatan dan alat pendidikan yang dapat Anda pilih, mendukung manajemen penilaian dan dikirimkan dengan sertifikat khusus. Ini juga memungkinkan komunikasi dengan siswa Anda secara real-time dengan alat konferensi video yang canggih. Selain itu, ini siap untuk seluler, sehingga siswa Anda dapat belajar dari perangkat seluler mereka.

Persyaratan Server Moodle

  • Sistem Operasi: instalasi minimal server CentOS 8 atau RHEL 8 dengan tumpukan LEMP terpasang.
  • Ruang Disk: 200MB untuk Moodle, dan 5GB mungkin merupakan jumlah minimum yang realistis untuk menyimpan konten.
  • Prosesor: Direkomendasikan 1GHz (min), dual-core 2GHz atau lebih.
  • Memori: direkomendasikan 512 MB (min), 1 GB atau lebih. 8GB plus kemungkinan ada di server produksi besar.

Di halaman ini

  • Membuat Data DNS Domain untuk Website Moodle
  • Menginstal Platform Pembelajaran Moodle di Server CentOS 8
  • Mengonfigurasi NGINX untuk Melayani Website Moodle
  • Selesaikan Instalasi Moodle melalui Web Installer
  • Aktifkan HTTPS di Situs Moodle Menggunakan Let’s Encrypt

Membuat Data DNS Domain untuk Website Moodle

1. Mulailah dengan membuat subdomain yang akan digunakan pengguna untuk mengakses situs pembelajaran online Moodle. Misalnya, jika nama domain Anda adalah testprojects.me, Anda dapat membuat subdomain bernama learning.testprojects.me.

Buka setelan DNS lanjutan nama domain Anda dan tambahkan data A seperti yang ditunjukkan pada gambar berikut.

Menginstal Moodle di Server CentOS 8

2. Sebelum menginstal Moodle, pastikan Anda memiliki ekstensi PHP yang diperlukan di server Anda, Anda dapat menjalankan perintah berikut untuk menginstalnya:

dnf install php-common php-iconv php-curl php-mbstring php-xmlrpc php-soap php-zip php-gd php-xml php-intl php-json libpcre3 libpcre3-dev graphviz aspell ghostscript clamav

3. Selanjutnya, buat database untuk aplikasi Moodle sebagai berikut.

mysql -u root -p

Kemudian buat database, pengguna database dan buat kata sandi yang aman untuk digunakan.

MariaDB [(none)]> CREATE DATABASE moodledb;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodledb.* TO 'moodleadmin'@'localhost' IDENTIFIED BY 'p@zzwd0L2';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

4. Sekarang unduh Moodle versi terbaru (3.9 pada saat penulisan) dari situs web resmi proyek Moodle, ekstrak file arsip dan pindahkan ke direktori webroot Anda (/var/www/html/), lalu atur izin dan kepemilikan yang sesuai agar server web dapat mengakses direktori Moodle, sebagai berikut.

wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
tar -xzvf  moodle-latest-39.tgz
mv moodle /var/www/html/
chmod 775 -R /var/www/html/moodle
chown nginx:nginx -R /var/www/html/moodle

5. Selanjutnya, buat direktori moodledata yang merupakan lokasi file yang diunggah atau dibuat oleh antarmuka Moodle, lalu berikan izin yang sesuai dan kepemilikan untuk memungkinkan server web membaca dan menulis akses ke sana:


mkdir -p /var/www/html/moodledata
chmod 770 -R /var/www/html/moodledata
chown :nginx -R /var/www/html/moodledata

6. Selanjutnya, pindah ke direktori instalasi Moodle dan buat file config.php dari contoh config.dist.php yang disediakan, lalu buka untuk diedit guna mengonfigurasi beberapa pengaturan penting untuk platform Moodle Anda, seperti parameter koneksi basis data dan lokasi situs serta lokasi direktori moodledata:

cd /var/www/html/moodle/
cp config-dist.php config.php
vim config.php

Tetapkan jenis basis data yang benar, host basis data yang benar, nama basis data, dan pengguna basis data serta kata sandi pengguna.

$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dblibrary = 'native';     // 'native' only at the moment
$CFG->dbhost    = 'localhost';  // eg 'localhost' or 'db.isp.com' or IP
$CFG->dbname    = 'moodledb';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'p@zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. Atur juga URL yang digunakan untuk mengakses situs Moodle Anda, ini menentukan lokasi wwwroot di mana file web Moodle Anda berada, dan juga dataroot (direktori moodledata):

$CFG->wwwroot   = 'http://learning.testprojects.me';
$CFG->dataroot  = '/var/www/html/moodledata';

Mengonfigurasi NGINX untuk Melayani Website Moodle

8. Di bagian ini, Anda perlu mengonfigurasi NGINX untuk melayani aplikasi Moodle Anda. Anda perlu membuat blok server untuk itu dalam konfigurasi NGINX seperti yang ditunjukkan.

vim /etc/nginx/conf.d/moodle.conf

Salin dan tempel konfigurasi berikut di file konfigurasi blok server. Ganti nama server dengan nama subdomain yang Anda buat di atas, dan fastcgi_pass akan mengarah ke php-fpm (catatan bahwa di CentOS 8, PHP-FPM menerima permintaan FastCGI menggunakan alamat yang ditentukan di /etc/nginx/conf.d/ konfigurasi php-fpm.conf).

server{
   listen 80;
    server_name learning.testprojects.me;
    root        /var/www/html/moodle;
    index       index.php;

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

    location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass            php-fpm;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Simpan file dan tutup.

9. Kemudian periksa kebenaran konfigurasi NGINX, jika sudah Ok, restart nginx dan layanan php-fpm untuk menerapkan perubahan terkini:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Jika Anda telah mengaktifkan SELinux di sistem Anda, jalankan perintah berikut untuk menyetel konteks yang benar untuk mengakses file web Moodle di pelayan:

setsebool -P httpd_can_network_connect on
chcon -R --type httpd_sys_rw_content_t /var/www/html

11. Selain itu, pastikan layanan HTTP dan HTTPS terbuka di firewall untuk mengizinkan lalu lintas ke NGINX server web:

firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Selesaikan Instalasi Moodle melalui Web Installer

12. Untuk mengakses pemasang web Moodle, buka browser web Anda, dan navigasikan menggunakan subdomain yang Anda buat di atas:

http://learning.testprojects.me

Setelah halaman selamat datang dimuat, bacalah syarat dan ketentuan, lalu klik Lanjutkan.

13. Selanjutnya, penginstal web akan memeriksa apakah sistem Anda memenuhi persyaratan untuk menjalankan situs Moodle versi yang ditentukan. Anda dapat menggulir ke bawah untuk melihat informasi lebih lanjut.

14. Pemasang akan mengeluh tentang HTTPS yang tidak diaktifkan, abaikan kesalahan tersebut untuk saat ini (di bagian selanjutnya, kami akan menunjukkan cara mengaktifkan HTTPS di Moodle), dan klik Lanjutkan, untuk memulai instalasi sebenarnya dari file web.

15. Sekarang penginstal akan memulai instalasi sebenarnya dari file Moodle seperti yang ditunjukkan pada gambar layar berikut. Setelah selesai, klik Lanjutkan.

16. Pada langkah berikutnya, Anda perlu memperbarui akun administrator situs Moodle Anda dengan memperbarui nama pengguna, kata sandi, nama depan, dan nama belakang, serta alamat email. Lalu gulir halaman ke bawah dan klik Perbarui Profil.

17. Kemudian perbarui pengaturan halaman depan situs Moodle. Lalu gulir ke bawah dan klik Perbarui untuk mulai menggunakan situs Moodle Anda.

18. Selanjutnya, Anda perlu mendaftarkan situs Anda dengan mengikuti petunjuk di layar. Anda dapat masuk ke dashboard dengan mengklik Dashboard.

Menyiapkan HTTPS di Situs Moodle Menggunakan Let’s Encrypt

HTTPS menambahkan lapisan keamanan pertama ke situs Anda untuk memungkinkan komunikasi yang aman antara pengguna Anda dan aplikasi Moodle (khususnya server web NGINX yang menerima meminta dan memberikan tanggapan).

Anda dapat membeli sertifikat SSL/TLS dari CA komersial atau menggunakan Let's Encrypt yang gratis dan dikenali oleh semua browser web modern. Untuk panduan ini, kami akan menggunakan Let’s Encrypt.

19. Penerapan Sertifikat Let's Encrypt dikelola secara otomatis menggunakan alat certbot. Anda dapat menginstal certbot dan paket lain yang diperlukan dengan perintah berikut:

dnf install certbot python3-certbot-nginx

20. Kemudian jalankan perintah berikut untuk mendapatkan sertifikat Let's Encrypt dan minta Certbot mengedit konfigurasi NGINX Anda secara otomatis untuk menyajikannya (ini juga akan mengonfigurasi HTTP untuk dialihkan secara otomatis ke HTTPS).

certbot --nginx

21. Kemudian jalankan perintah berikut untuk mengaktifkan perpanjangan otomatis sertifikat Let's Encrypt SSL/TLS:

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

22. Selanjutnya, perbarui konfigurasi Moodle Anda untuk mulai menggunakan HTTPS.

vim /var/www/html/moodle/config.php

ubah URL wwwroot dari HTTP menjadi HTTPS:

$CFG->wwwroot   = 'https://learning.testprojects.me';

23. Terakhir, konfirmasikan bahwa situs Moodle Anda kini berjalan di HTTPS.

Itu saja untuk saat ini! Untuk informasi lebih lanjut dan opsi konfigurasi untuk menjalankan platform pembelajaran baru Anda, kunjungi situs web Moodle, dan baca dokumentasi resminya.