Author: System Administrator
Ganti Sessions File system ke Database
Secara default sessions pada moodle diletakkan pada file system di moodledata dengan nama folder */[moodledata]/sessions* . Ada kalanya kita perlu meletakkan sessions tersebut di database untuk beberapa alasan:
- Kemudahan pemeliharaan
- Kecepatan
Kita bisa menggunakan database table, yaitu mdl_sessions menggunakan memory database seperti Memcache dan Redis
Yang paling mudah adalah konversi ke tabel database, yaitu tinggal meletakkan parameter baru di config.php
$CFG->sessionhandler = ‘database’;
Bila table mdl_sessions belum ada, maka moodle akan membuatkannya untuk Anda
Untuk menggunakan redis dan memcache akan saya tuangkan pada tulisan yang berbeda.
Selamat mencoba
Hide X-Powered-By di Nginx
Terkadang kita perlu menyembunyikan identitas teknologi yang kita gunakan, misalnya identitas web server Nginx yang kita gunakan. Itu akan terlihat seperti di bawah ini:

Disini kita perlu menambahkan atau mengaktifkan pada konfigurasi bagian http di /etc/nginx.conf :
server_tokens off;
Dan juga tambahan library :
sudo apt-get install nginx-extras
setelah itu baru menambahkan kembali bagian http di /etc/nginx.conf konfigurasi di bawah ini:
more_clear_headers Server;
Setelah itu jangan lupa untuk me’reload atau pun restart nginx nya
sudo systemctl reload nginx
Sekarang menjadi seperti ini:

Menambahkan File JavaScript eksternal (.js) ke Moodle
Terkadang kita perlu menambahkan file javascript (*.js) ke dalam LMS Moodle yang sedang kita kembangkan. Berikut adalah langkah-langkahnya:
Masuk ke Folder Theme Anda
Pertama-tama , masuklah ke direktori /theme/Nama_Theme_Anda. Jika di dalamnya belum ada folder bernama javascript, buatlah folder baru dengan nama tersebut.
Unggah File JavaScript
Letakkan file .js yang ingin ditambahkan ke dalam folder javascript yang baru dibuat.
Edit File config.php
Buka file config.php yang berada di dalam folder theme Anda (/theme/Nama_Theme_Anda/config.php). Di bagian paling bawah file tersebut, tambahkan baris kode berikut untuk menyertakan file JavaScript Anda:
#To load the js files in your header:
$THEME->javascripts = array(‘yourfirstjsfile’,’yoursecondjsfile’);
#To load the js files in your footer:
$THEME->javascripts_footer = array(‘yourfirstjsfile’,’yoursecondjsfile’);
Perlu dicatat bahwa: Pada saat menambahkan nama file JavaScript dalam konfigurasi, jangan sertakan ekstensi .js. Contohnya, gunakan’youfirstjsfile’ bukan ‘yourfirstjsfile.js’.
Agar perubahan tersebut berlaku, maka kita perlu membersihkan cache situs Moodle, kemudian bersihkan cache browser dan reload.
Referensi: https://dzone.com/articles/adding-external-javascript-files-js-into-moodle
Moodle Tools (Advance)
1. MOOdle SHell
Moosh stands for MOOdle SHell. It is a commandline tool that will allow you to perform most common Moodle tasks.
2. Course Delete CLI
Linux Bash Tips
Eksekusi perintah pada file-file tertentu
Rekursif perintah untuk mendafpatkan file-file dengan tipe tertentu, lalu mengeksekusi perintah tertentu pada setiap file tersebut
# find /directory/of/interest/ -type f -iname "*.sh" -exec chmod +x {} \;
Mengubah mod dari sebuah file yang berisi daftar file
# chmod g+w `cat daftar_nama_file.txt`
daftar_nama_file.txt
file1.abc
file2.xyz
dst.abx
How to Get Current Date and Time in Bash Script
#!/bin/bash
current_date_time=$(date)
echo "Current date and time: $current_date_time"
# Output: Current date and time: Sun Feb 28 23:26:13 UTC 2023
Nginx config tips
Membuat semua file txt, git dan md tidak dapat di akses user
Letakkan script ini dalam file config di bagian atas
location ~.(git|txt|md)$ {
deny all;
return 404;
}
Menyembunyikan versi nginx
Pada /etc/nginx/nginx.conf, tambahkan berikut ini:
server_tokens off;
Tambahan konfigurasi yang tidak standard di Nginx
apt-get install nginx-extras
Setelah itu kita bisa menambahkan kode berikut ini di nginx.conf
server_tokens off;
more_set_headers "Server: Molly Percocet";
Blok semua tipye file tapi tidak untuk file tertentu (misalnya dengan file yang di awali dengan .well-known
)
## Disable .htaccess and other hidden files
location ~ /\.(?!well-known).* {
deny all;
access_log off;
log_not_found off;
}
My Frequent Command on MySQL 8.0 Administration
List of available users
SELECT User, Host FROM mysql.user;
Show privileges of an account
show grants for exampleuser@localhost;
Contoh:
mysql> show grants for epintaruser@localhost;
+------------------------------------------------------------------+
| Grants for epintaruser@localhost |
+------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `epintaruser`@`localhost` |
| GRANT ALL PRIVILEGES ON `epintar`.* TO `epintaruser`@`localhost` |
+------------------------------------------------------------------+
2 rows in set (0.00 sec)
Alter user password
ALTER USER 'userName'@'localhost' IDENTIFIED BY 'New-Password-Here';
Contoh:
mysql> alter user 'moodle_user'@'%' identified by 'p4sswordku';
Query OK, 0 rows affected (0.00 sec)
mysql>
Grant privileges of a database to a user
Syntax:
GRANT <privileges> ON <database>.<object> TO '<user>'@'<host>';
Sebelumnya harus sudah ada terlebih dahulu proses pembuatan user dengan host yang sama
Contoh:
mysql> GRANT ALL PRIVILEGES ON digitoskelasku.* TO 'moodle_user'@'%';
Query OK, 0 rows affected (0.00 sec)
Create alternate Super Admin Users
Using root account for daily activities is not recommended, so we need to have other user account that has superadmin privileges
mysql> create user admin@localhost identified by '@dminpassw0rd';
mysql> grant all privileges on *.* to admin@localhost;
Install php7.4 dan php8.0 di Ubuntu 22.04
Mengapa perlu memasang lebih dari satu versi PHP ?
Pada masa peralihan teknologi ada kalanya kita memerlukan kedua versi exist bersama-sama, karena bisa jadi sebagian aplikasi masih menggunakan php7.4 tapi pada versi aplikasi yang lebih baru atau aplikasi yang lain yang berjalan di server yang sama menggunakan php yang versinya lebih baru, pada tulisan ini kita pakai php8.x. Nanti pengaturan versi PHP mana yang digunakan dilakukan pada file konfigurasi nginx nya walaupun tetap memililh salah satu untuk versi defaultnya
sudo apt install software-properties-common ca-certificates lsb-release apt-transport-https
LC_ALL=C.UTF-8 sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.4
sudo apt install php8.0
Mengatur default php version
sudo update-alternatives --config php
Akan muncul menu seperti di bawah ini:
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.0 80 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.0 80 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Mengatur batas maximum Upload File di Nginx
Pada konfigurasi virtualhost, tepatnya pada blok server {} , tambahkan parameter ini:
client_max_body_size 128m;
Dan pada location ~ .php$ {} , tambahkan parameter berikut:
fastcgi_param PHP_VALUE "upload_max_filesize=128M \n post_max_size=128M";
Setelah itu nginx dapat di restart/reload
$ sudo systemctl restart nginx.service