Di artikel ini saya tidak membuat tutorial, tapi sekedar berbagi pengalaman memindahkan Moodle dari satu server ke server lain. Seperti kita ketahui, Moodle adalah LMS yang ditakdirkan untuk diakses beramai-ramai, minimal oleh 36 orang, yaitu siswa satu kelas. Bila sedang “apes”, maka pengunjungnya bisa sampai ribuan orang, misalnya ketika Ulangan Umum (Penilaian Akhir Semester dan Ujian Sekolah Berbasis Komputer). Artinya bahwa server yang dipakai tidak bisa berupa shared web hosting biasa, tapi harus yang bertenaga kuda. Ketika Penilaian Tengah Semester di suatu SMK Negeri yang siswanya mencapai 1500-an orang, RAM 8 GB nyaris seluruhnya terpakai. Bila tidak cermat melakukan tune-up, maka prosesor bisa terpakai nyaris 100%.
Karena alasan di atas, saya selalu memakai minimal VPS yang RAM-nya lebih dari 1 GB. CPanel adalah pilihan terbaik, tapi mahal. Untuk menghemat anggaran, saya pernah menginstal manual Linux, Apache, MySQL, dan PHP. Ini bisa mengubah biaya $20/bulan untuk sewa CPanel menjadi $0 alias gratis. Tapi harus dibayar oleh waktu yang tersita karena harus men-setting manual, yang lama-lama terasa melelahkan.
Oke. Bagaimana cara memindahkan Moodle?
1. Ubah dulu ke mode Maintenance.
Caranya, berikan perintah (di Linux Command Line):
php admin/cli/maintenance.php --enable
Ini untuk memastikan bahwa ketika saya sedang membackup database, tidak terjadi perubahan data misalkan karena ada guru yang mengetik soal baru atau ada murid yang mengerjakan soal.
2. Backup database
Untuk MySQL atau MariaDB, perintahnya adalah:
mysqldump -uroot -prahasia namadb --result-file=database.sql
-u diikuti username dan -p diikuti password..
3. Backup seluruh file yang ada di htdocs dan di moodledata dengan perintah:
tar -cjf backup.tar.gz2 htdocs moodledata
4. Copy-kan file-file tadi dari server lama ke server baru.
Dari pada diunduh dulu ke laptop kemudian diunggah ke server baru yang bisa menghabiskan quota internet, lebih baik dicopykan saja langsung antar server. Caranya: Taruh file-file yang akan dicopykan ke folder htdocs, kemudian dari server baru lakukan perintah:
wget http://namadomain/backup.tar.gz2
Lakukan juga untuk file SQL hasil dari mysqldump.
5. Amankan file backup di server lama ke folder lain yang tidak bisa diakses oleh public
dengan perintah:
mv /home/user/htdcocs/backup.tar.gz2 /home/user/rahasia
6. Buka koneksi dengan server baru, lalu mekarkan file backup
dengan perintah:
tar -xjf backup.tar.gz2
7. Sesuaikan dengan lingkungan baru.
Bila nama domain berbeda, ubah isi file database.sql. Ganti nama domain lama dengan nama domain baru. File config.php juga harus diubah agar sesuai dengan konfigurasi di server baru.
Import database ke server baru, caranya:
mysql -uusername -ppassword database < database.sql
8. Matikan mode maintenance.
Perintahnya adalah:
php admin/cli/maintenance.php --disable
Selesai.
Tapi tantangan tidak hanya sampai di situ. Sering kali kita harus mengubah konfigurasi MySQL agar mendukung karakter set utf8mb4_unicode_ci. Juga men-setting web server (khususnya Nginx). Bila tidak disetting dengan benar, sering kali CSS di Nginx seolah tidak berlaku.
Untuk server baru, bila anda tidak mau repot mensetting, gunakan saja hoster.co.id Hosting ini berfungsi sangat baik, melebihi tarifnya yang murah. Saya mendaftar hanya dengan biaya Rp 79.800 untuk tahun pertama. Setelah itu Rp 399.000 pertahun. Ini termasuk sangat murah, mengingat fitur yang disediakan adalah:
- Unlimited bandwidth.
- Unlimited domain name.
- Unlimited space. Tidak unlimited betulan sih, sebab dibatasi maksimal 750.000 inodes. Satu inodes setara dengan 1 nama folder atau 1 nama file. Bagi saya, ini lebih dari cukup. Saya menginstall 3 Moodle tapi inodes yang terpakai baru 15,47%.
- CPanel terbaru.
- Tidak perlu setting web server dan MySQL. Moodle sudah bisa langsung dipasang.
Tips:
Bila MathJax ingin disimpan di server yang sama dengan Moodle (tidak mau memakai CDN), maka unduh MathJax 2.7.2 lalu diextract ke folder. Setelah itu ubah Site Administration > Plugin > Filters > MathJax agar menunjuk ke MathJax.js yang ada di server Moodle.
Sekian sharing saya tentang memindahkan Moodle dari satu server ke server lain. Semoga bermanfaat.
salam kenal pak
saya guru di sebuah smk swasta dan berencana ujian online menggunakan moodle lewat vps dengan jumlah siswa 350 siswa dibagi menjadi 2 shift, kira kira spek server vps yang cocok berapa ya??
Salam kenal kenal juga pak.
Dari pengalaman saya, RAM minimal adalah 4 GB. Lebih baik 8 GB.
Tapi yang lebih penting adalah pemilihan web server. Sebaiknya jangan memakai Apache, tapi Nginx. khususnya bila RAM kecil, sebab Apache membuat thread baru untuk setiap koneksi. Bila pengguna sedikit mungkin tidak berpengaruh banyak. Tapi bila banyak, maka RAM bisa cepat “habis”.
saya ada kasus begini pak …
saya punya 1 domain utama misal sekolahku.sch.id dgn ip 222.222.222.222 terpasang di vps1
nah saya order 1 lagi vps baru dengan ip yang berbeda dan saya ingin buat sub domain di domain sekolahku.sch.id misal cabang.sekolahku.sch.id …bagaimana caranya pak?
Misalkan:
VPS sekolahku.sch.id IP addressnya 222.222.222.222
VPS cabang.sekolahku.sch.id IP addressnya 111.111.111.111
Bila di cabang ada DNS server (misalnya named), maka di DNS server-nya sekolahku ditambahkan record:
ns1.cabang 14400 IN A 111.111.111.111
cabang 14400 IN NS ns1.cabang.sekolahku.sch.id.
Tapi bila di cabang tidak ada DNS server, maka di DNS server-nya sekolahku ditambahkan record:
cabang 14400 IN A 111.111.111.111
www.cabang 14400 IN CNAME cabang
Kalau boleh memberi saran, untuk mudahnya, bapak memakai DNS-nya Cloudflare saja pak. Bapak setting DNS dari situ.
Assalamualaikum pak mawan
Ijin tanya bila point ke 4 akan saya pindah ke flsdh kemudian baru saya pindahkan ke server baru lwt flashdisk trsbt… Script di server Linux bagaimana ya…. Terimakasih pak….
Wa’alaikum salam.
Masuk ke server melalui SSH (command line), lalu ketik:
mysqldump namadatabase –result-file=namabackup.sql
File namabackup.sql ini kemudian didownload ke flash drive memakai FTP, atau bisa juga untuk sementara ditaruh di folder htdocs agar bisa diunduh memakai web browser (namadomain.com/namabackup.sql), setelah selesai diunduh, jangan lupa segera dihapus agar tidak diunduh oleh orang lain.
Setelah file namabackup.sql tersimpan di flash drive, file diunggah ke server baru. Bisa memakai FTP. Bisa juga memakai file manager kalau ada cPanel.
Untuk merestore database, perintahnya adalah:
mysql namadatabase < namabackup.sql
salam kenal pak Mawan, saya mau tanya misal back up mysql dan database yang pindah ke flasdish kemudian dari flasdish saya pindah ke server linux yang baru…scriptnya bagaimana ya pa?
Salam kenal juga.
Masuk ke server melalui SSH (command line), lalu ketik:
mysqldump namadatabase –result-file=namabackup.sql
File namabackup.sql ini kemudian didownload ke flash drive memakai FTP, atau bisa juga untuk sementara ditaruh di folder htdocs agar bisa diunduh memakai web browser (namadomain.com/namabackup.sql), setelah selesai diunduh, jangan lupa segera dihapus agar tidak diunduh oleh orang lain.
Setelah file namabackup.sql tersimpan di flash drive, file diunggah ke server baru. Bisa memakai FTP. Bisa juga memakai file manager kalau ada cPanel.
Untuk merestore database, perintahnya adalah:
mysql namadatabase < namabackup.sql