Pada kesempatan kali ini yaitu Install Moodle melalui git dengan Postgres, Nginx dan PHP di Ubuntu 20.04
Kenapa harus Install Moodle melalui Git ?
Jawabannya sederhana karena dengan Git kita dapat menjalankan proses update hanya dengan menjalankan bash pada linux.
Prerequisites
- Sudah install ubuntu 20.04
- Sudah terpasang GIT pada ubuntu
Daftar Isi
- Install Nginx
- Install Postgresql
- Install Php dan librarinya
- Install Moodle
- Pengaturan Database
- Pengaturan Nginx
- Pengaturan cron
- Konfigurasi script update moodle
Install Nginx
Menggunakan webserver nginx tentunya menjadi pilihan favorit karena fitur caching pada moodle sangat sesuai dengan nginx yang dapat menyajikan file statis dengan sangat cepat. berikut langkah-langkahnya:
sudo apt-get update
sudo apt-get install nginx
Lakukan konfigurasi nginx untuk situs moodle kamu.
sudo nano /etc/nginx/sites-available/moodle
buat virtual host sederhana dengan script berikut
server {
server_name <^>contoh.id<^>;
listen 80;
root /usr/share/nginx/html/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 snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
}
lalu, aktifkan situs moodlenya:
sudo ln -s /etc/nginx/sites-available/moodle /etc/nginx/sites-enabled/moodle
sudo service nginx restart
untuk install Nginx secara lengkap silahkan cek artikel ini.
Install Postgresql
sudo apt-get install postgresql postgresql-contrib
Buat database untuk proses install moodle dengan perintah
sudo su -postgres
psql
setelah masuk kedalam console postgresql
CREATE USER moodleuser WITH PASSWORD '123456789';
CREATE DATABASE moodle;
GRANT ALL PRIVILEGES ON DATABASE moodle to moodleuser;
\q
exit
Install PHP dan Librari
sudo apt-get install php-fpm php-curl php-gd php-xmlrpc php-intl php-xml php-zip php-mbstring php-soap php-pgsql
Install Moodle
silahkan menuju ke direktori wwwroot apabila nginx diinstall secara default maka direktori wwwroot
berada di /usr/share/nginx/html
cd /usr/share/nginx
secara default direktori html hanya dapat diakses oleh root user oleh sebab itu rubah kepemilikan menjadi user biasa dengan perintah sebagai berikut
sudo chown -R $USER:$USER html
setelah merubah permission waktunya melakukan download source moodle via git dengan perintah berikut
cd html
sudo git clone https://github.com/moodle/moodle.git
perintah clone melakukan kloning repositori moodle yang ada di github. kelak apabila kamu memindahkan moodle kamu ke server lain kamu cukup memerikan versi moodle yang digunakan. setelah proses clone selesai arahkan ke direktori moodle dengan perintah
cd moodle
sudo git remote show origin
setelah menjalankan perintah diatas maka akan terlihat versi-versi yang ada maka aktifkan versi terbaru dengan perintah
sudo git checkout MOODLE_311_STABLE
Komunitas moodle selalu merilis pembaharuannya sesuai dengan jadwal yang telah ditentukan dan juga terdapat rilis bulan hingga mingguan baik itu terkait perbaikan bug atau issue keamanan untuk melakukan update source yang tersedia cukup ketikan perintah git pull
. apabila kelak anda ingin update ke versi stable diatas versi yang diinstall sekarang cukup dengan perintah
sudo git checkout MOODLE_312_STABLE
Pengaturan config moodle
Setelah melakukan konfigurasi pada nginx dan database lanjutkan dengan mengkonfigurasi config pada moodle
<?PHP
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype = 'pgsql';
$CFG->dblibrary = 'native';
$CFG->dbhost = 'localhost';
$CFG->dbname = 'moodle';
$CFG->dbuser = 'moodleuser';
$CFG->dbpass = '123456789';
$CFG->prefix = 'mdl_';
$CFG->dboptions = array(
'dbpersist' => false,
'dbsocket' => false,
'dbport' => '',
);
$CFG->wwwroot = 'https://<^>contoh.com<^>';
$CFG->dataroot = '/usr/local/moodledata';
$CFG->directorypermissions = 02777;
$CFG->admin = 'admin';
require_once(dirname(__FILE__) . '/lib/setup.php');
membuat direktori yang dibutuhkan moodle
sudo mkdir /usr/local/moodledata
sudo mkdir /var/cache/moodle
atur permission
sudo chown www-data:www-data /usr/local/moodledata
sudo chown www-data:www-data /var/cache/moodle
Pengaturan cron
sudo crontab -u www-data -e
atur cron script setiap 10 menit:*/10 * * * * php -q -f /usr/share/nginx/www/moodle/admin/cli/cron.php
Pengaturan script minor update
nano update_moodle.sh
lalu isikan dengan script dibawah ini
# File name: update_moodle.sh
#
# switch to moodle source directory
cd /usr/share/nginx/html/moodle;
# put moodle into maintenance mode
sudo -u www-data php /usr/share/nginx/html/moodle/admin/cli/maintenance.php --enable;
# pull changes
git pull;
# run the moodle upgrade script to which you will have to answer: y
sudo -u www-data php /usr/share/nginx/html/moodle/admin/cli/upgrade.php;
# Put moodle into regular mode again
sudo -u www-data php /usr/share/nginx/html/moodle/admin/cli/maintenance.php --disable;
# run the cron script to clean up
sudo -u www-data php /usr/share/nginx/html/moodle/admin/cli/cron.php;
# and switch back to your original directory
cd -;
ubah permisionnya dengan command sudo chmod +x update_moodle.sh
dan coba jalankan dengan perintah ./update_moodle.sh
Setiap kali moodle mengeluarkan versi major maka perlu diingat untuk memilih versi major yang tersedia dengan perintah git checkout MOODLE_40_STABLE