Tutorial instalasi moodle x mysql x apache
Moodle merupakan kepanjangan dari Modular Object-Oriented Dynamic Learning Environment adalah paket perangkat lunak yang diproduksi untuk kegiatan belajar berbasis internet dan situs web yang menggunakan prinsip social constructionist pedagogy.
Untuk dapat menggunakan moodle, banyak vendor yang menawarkan moodle untuk sekolah baik secara gratis maupun berbayar. Untuk yang gratis dapat diakses pada
- Gnomio (saat ini layanan gnomio untuk lokasi indonesia ditutup)
- Moodlenesia (moodlenesia.com)
- Moodlecloud (moodlecloud.com)
Tentunya untuk yang gratis ada beberapa kekurangan, mulai dari storage, core prosesor, concurrent user (user yang online) dan lain-lain yang dibatasi.
Untuk installasi pada sekolah dapat memanfaatkan server UNBK yang saat ini tidak digunakan, cuma kendalanya adalah, server harus online 24 Jam, belum lagi AC untuk mendinginkan ruangan server harus dingin, koneksi internet yang stabil dan lain sebagainya.
Solusi berikutnya sekolah dapat membeli Virtual Private Server yang dapat dibeli secara online, dengan memanfaatkan VPS ini sekolah tidak perlu memikirkan biaya listrik (untuk menghidupkan server) serta biaya internet (untuk koneksi server ke client). Pada tutorial ini saya menggunakan VPS (Virtua Private Server) dengan spesifikasi 6 Core Memori 8 Gb dan Storage SSD 100Gb.
Berikut hal-hal yang perlu dipersiapkan dalam instalasi moodle dengan webserver apache dan database mysql
- Server bersistem operasi linux (saya sendiri pada tutorial ini menggunakan ubuntu 20.04)
- Webserver Apache
- Database Mysql
- PHP
- Masuk menggunakan SSH, login menggunakan root
- Update upgrade software ubuntu
- Upgrade software ubuntu
- Install Apache2, Mysql dan PHP
- Install Additional Software
- Restart Apache
- Cek webserver pada browser dengan mengetik IP VPS
apt update
apt upgrade -y
apt install apache2 mysql-client mysql-server php libapache2-mod-php
apt install graphviz aspell ghostscript clamav php7.4-pspell php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-ldap php7.4-zip php7.4-soap php7.4-mbstring
service apache2 restart
- Buat direktori moodle
- Masuk ke folder moodle
- Download moodle (saat ini saya menggunakan moodle versi 3.10
- Ekstrak moodle
- Buat direktori moodledata
- Atur permission pada direktori moodledata
mkdir /var/www/html/moodle
cd /var/www/html/moodle
wget https://download.moodle.org/download.php/direct/stable310/moodle-latest-310.tgz
tar -xzvf moodle-lastest-310.tgz
mkdir /var/moodledata
chown -R www-data /var/moodledata
chmod -R 777 /var/moodledata
- Lindungi mysql
- Masuk ke aplikasi mysql
- Membuat database moodledb
- Membuat user database moodle
- Membuat permission pada moodleuser ke database moodledb
- Keluar dari aplikasi mysql
mysql_secure_installation
Enter current password for root (enter for none): (enter) Set root password? [Y/n] n 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
mysql -u
CREATE DATABASE moodledb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
create user 'moodleusr'@'localhost' IDENTIFIED BY 'usrmoodle123';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodledb.* TO 'moodleusr'@'localhost';
quit
- Buka browser, ketik IP VPS diikuti /moodle, misalnya :
- Pilih bahasa indonesia, dan klik selanjutnya
- Sesuaikan pengaturan folder yang telah dilakukan sebelumnya, klik selanjutnya
- Pilih database, klik selanjutnya
- Atur pengaturan database seperti pada langkah sebelumnya, klik selanjutnya
- Bila berhasil tidak ditemukan error, kembali ke ssh, rubah permission pada folder moodle
- Ikuti proses installasi, lama tidaknya tergantung spesifikasi VPS
120.20.40.51/moodle
chmod -R 777 /var/www/html/moodle/
- Buka ssh kembali
- Install editor nano
- Edit 000-default.conf
- Rubah pada bagian
- Restart apache2
- Edit config.php
- Rubah $CFG->wwwroot
- Bila sudah selesai semua, atur permission
apt install nano
nano /etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/html
DocumentRoot /var/www/html/moodle
systemctl restart apache2
nano /var/www/html/moodle/config.php
$CFG->wwwroot ='http://120.20.40.51/moodle
$CFG->wwwroot ='http://120.20.40.51/
chmod -R 0755 /var/www/html/moodle
chown -R root:root /var/www/html/moodle
- Install ufw
- Tutup semua port
- Ijinkan akses SSH
- Ijinkan akses http
- Ijinkan akses https
- Ijinkan port 8080/tcp
- Mengaktifkan UFW
- Cek status UFW
apt install ufw
ufw default deny incoming
ufw allow ssh
ufw allow http
ufw allow https
ufw allow 8080/tcp
ufw enable
ufw status
ufw verbose
- Install fail2ban
- Jalankan fail2ban
- masuk ke folder fail2ban
- Salin jail.conf menjadi jail.local
- Edit jail.local
- Rubah bantime
- Rubah [sshd], tambahkan
- Untuk yang lain dapat disesuaikan misalnya pada [apache-auth] [apache-badbots] [apache-noscript] [apache-overflow] [apache-shellshock]
- Restart fail2ban
- Melihat status fail2ban
apt install fail2ban
systemctl start fail2ban
systemctl enable fail2ban
cd /etc/fail2ban/
nano jail.local
bantime = 3600
enabled = true filter = sshd maxretry = 3 bantime = 3600
systemctl restart fail2ban
fail2ban-client -v status
- Tambahkan user
- Berikan ijin untuk mengakses root
- Edit sshd_config
- Ganti permit login
- Restart sshd
adduser dawen
usermod -a -G sudo dawen
nano /etc/ssh/sshd_config
PermitRootLogin yes
PermitRootLogin no
AllowUsers dawen
service sshd restart


