Pendahuluan


MOODLE (singkatan 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. MOODLE merupakan salah satu aplikasi dari konsep dan mekanisme belajar mengajar yang memanfaatkan teknologi informasi, yang dikenal dengan konsep pembelajaran elektronik atau e-learning. Moodle dapat digunakan secara bebas sebagai produk sumber terbuka (open source) di bawah lisensi GNU. Moodle dapat diinstal di komputer dan sistem operasi apapun yang bisa menjalankan PHP dan mendukung database SQL.

Untuk dapat menggunakan fitur baru yang ada pada moodle tentunya kita perlu upgrade atau menigkatkan versi moodle yang digunakan. Pada tutorial kali ini saya akan menjelaskan secara detail apa saja yang harus disiapkan untuk upgrade, tak hanya upgrade saja tetapi saya juga akan membagikan beberapa masalah dan solusi yang bisa dilakukan saat upgrade moodle.

Apa saja yang harus disiapkan ?

Langsung saja kita memulai apa saja yang di perlukan untuk upgrade moodle.
1. Untuk bisa menggunakan moodle versi 3.10, disaranakan dari versi 2.9 ke versi 3.1 lalu ke versi 3.5
2. Backup database
3. Backup moodle data
4. Moodle 3.1 minimal PHP 5.4.4 , MySQL 5.5.31 atau MariaDB 5.5.31
5. Moodle 3.5 minimal PHP 7.0.0 , MySQL 5.5.31 atau MariaDB 5.5.31
6. Moodle 3.10 minimal PHP 7.2.0 , MySQL 5.7 atau MariaDB 10.2.29

Langkah Upgrade

1. Buka setting untuk mengecek moodle versi berapa yang digunakan Administration > Site Administration > Server > Environment
upgrade moodle environment

2. Nampak di atas versi moodle yang digunakan versi 2.9, kemudian cek juga apakah ada aplikasi atau paket yang statusnya blm oke, biasanya jika ada yang berlum terinstall status muncul dengan nama check warna orange, atau kalua yang bermasah statusnya menjadi error warna merah. Pastikan sebelum update tidak ada yang error.

3. Untuk upgrade moodle ke versi yang paling baru yaitu 3.10 harus bertahap, tidak bisa langsung lompat ke versi 3.10, pada tutorial kalo ini saya menggunakan moodle 2.9 jadi harus melakukan upgrade 2 kali pertama upgrade ke versi 3.1 kemudian ke versi 3.5 baru setelah versi 3.5 kita bisa langsung skip ke versi 3.10

4. Sebelum upgrade ada beberapa hal penting yang harus dilakukan yaitu backup jika suatu saat pada saat proses upgrade mengalami masalah kita masih punya cadangan file dan bisa di restore. Untuk yang perlu di update yaitu
  • Moodle aplikasi, yang berisi aplikasi moodle (misal : /home/konten/moodlelama)
  • Moodle data / upload file, yang berisi data upload file dan sebagaianya (missal : /home/konten/moodledatalama)
  • Moodle database.
5. Download moodle versi 3.1 yang paling akhir, link download https://download.moodle.org/stable31/moodle-latest-31.tgz

6. Ekstrak hasil download moodle, dan pastikan tidak menimpa file aplikasi moodle yang lama
# tar -xzvf moodle-latest-31.tgz

7. Hasil dari ekstrak diatas adalah /home/konten/moodle , maka perlu di rename supaya membedakan mana yang lama dan yang baru ke moodle-31
# mv /home/konten/moodle /home/konten/moodle-31/

8. Sebelum memulai upgrade jangan lupa rubah pengaturan web moodle ke maintenance mode, supaya menghentikan user non root untuk login.

9. Jangan lupa rubah owner folder sesuai dengan user yang digunakan
# chown -R moodle:moodle /home/konten/moodle-31

10. Copy file config.php ke direktori baru, dalam tutorial ini /home/konten/moodlelama ke /home/konten/moodle-31
# cp /home/konten/moodlelama/config.php /home/konten/moodle-31/config.php

11. Jika anda pernah install thema atau modifikasi plugin Copykan juga direktori theme dan mod dari moodle lama, ke moodle-31
# cp -pr /home/konten/moodlelama/theme/temakustom /home/konten/moodle-31/theme/
# cp -pr /home/konten/moodlelama/mod/pluginkustom /home/konten/moodle-31/mod/

12. Jika mengalami kendala unsupported_db_table_row_format
unsupported_db_table_row_format upgrade moodle

login ke database, lalu copy saja perintah query di bawah
USE database moodle;
SET SESSION sql_mode=STRICT_ALL_TABLES;
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_file_format=Barracuda; (Biasanya Error)
ALTER TABLE mdl_data ROW_FORMAT=Compressed;
ALTER TABLE mdl_data_fields ROW_FORMAT=Compressed;
ALTER TABLE mdl_enrol_paypal ROW_FORMAT=Compressed;
ALTER TABLE mdl_lti ROW_FORMAT=Compressed;
ALTER TABLE mdl_user ROW_FORMAT=Compressed;
ALTER TABLE mdl_user_info_field ROW_FORMAT=Compressed;

Atau bisa menggunakan CLI php moodle, berikut perintahnya
# php /home/konten/moodlelama/admin/cli/mysql_compressed_rows.php –fix

Untuk opsi perintahnya bisa beikut penjelasaanya
-i, --i Menunjukan informasi database
-l, --list Melihat daftar table yang bermasalah
-f, --fix Mencoba memperbaiki semua table ( yang memerlukan hak akses  Super)
-s, --showsql Memberitahu untuk memperbaiki table dengan perintah SQL
-h, --help Menampilkan bantuan

Jika error buka konfig /etc/my.cnf.d/server.cnf (lokasi ini sesuaikan dengan lokasi konfigurasi aplikasi database yang anda gunakan)
innodb_file_format mariadb upgrade moodle

[mysqld] 
cari command mysqld seperti di atas, lalau copy paste config di bawah ini.

innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = "ON"
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake
performance_schema = on

lalu simpan, kemudian refresh

mysql_full_unicode_support upgrade moodle

Jika muncul cek di atas silakan rubah charset dan collation untuk perintah CLI seperti berikut
# php /home/konten/moodlelama/admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci

13. Ketika sudah tidak ada masalah pada environment maka bisa lanjut ke Langkah upgrade moodle, karena saya membedakan nama folder moodle yang dengan yang baru makan sayaa harus mengubah pada setingan virtual host, pada Langkah ini sesuaikan dengan kondisi anda.
Kebetulan saya menggunakan sistem operasi CentOS 7, dengan aplikasi web server Apache. Berikut cara merubahnya
#vim /etc/httpd/conf.d/virtualhostmoodle.conf
Lalu rubah pada bagian DocumentRoot ganti lokasi direktori ke direktori moodle yang baru
Jika sudah simpah dengan tekan tombol esc (pada keyboard), :wq

14. Jangan lupa setelah mengedit file virtual host restart service apachenya dengan perintah.
# systemctl restart httpd

15. Akses moodle melalui web browser kemudian jika mengalami HTTP ERROR 500, kemungkikan yang bermasalah ada ditema periksa kembali tema yang digunakan.
HTTP ERROR 500 upgrade moodle

Solusinya 
  • Ubah virtual host ke moodle yang lama, kemudian periksa pakailah tema bawaan moodle. Lalu uninstall selain tema default moodle. Dan hapus pada direktori tema yang di uninstall
  • Atau bisa juga sebelum upgrade moodle, cek apakah tema yang digunakan apakah sudah mendukung dengan versi moodle yang akan kita install, jika tidak baiknya upgrade juga tema dan sesuaikan dengan versi moodle yang didukung
16. Akses kembali moodle melalui web browser, login user administrator
upgrading database moodle

17. Setelah itu moodle akan memproses dan upgrade database, Klik Continue
server checks upgrade moodle

18. Pastikan dalam tahap ini tidak ada environment yang error, atau check. Kemudian klik Continue lagi
plugins check upgrade moodle

19. Sampai tahap ini juga pastikan bahwa tidak ada plugins yang error atau belum tercopy ke direktori moodle yang baru. Jika ada error maka moodle tidak bisa melanjutkan proses upgrade. Kemudian scroll ke halaman paling bawah lalu klik Upgrade Moodle database now, maka sistem akan memulai proses upgrade
proses upgrade moodle


20. Jika sudah scroll ke halaman paling bawah lalu klik continue, maka tampilannya akan seperti gambar di bawah ini
setting setelah upgrade moodle


21. Jika dirasa tidak ada perubahan pengaturan maka langsung saja scroll ke halaman paling bawah, lalu klik Save changes

Untuk menginstall moodle versi 3.5 dan juga 3.10 kurang lebih caranya sama yaitu tinggal di ulang saja tutorial di atas jika dirasa ada yang tidak perlu langsung di skip ke langkah selanjutnya.

Mohon maaf jika ada yang tidak sesuai mohon masukan supaya kedepan bisa lebih baik memebuat tutorial, jika perlu / butuh bantuan bisa kontak saya di page contact.