Memindahkan Moodle ke Server Lain

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):

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:

-u diikuti username dan -p diikuti password..

3. Backup seluruh file yang ada di htdocs dan di moodledata dengan perintah:

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:

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:

6. Buka koneksi dengan server baru, lalu mekarkan file backup

dengan perintah:

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:

8. Matikan mode maintenance.

Perintahnya adalah:

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.

 

Related Posts

8 thoughts on “Memindahkan Moodle ke Server Lain

  1. 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??

    1. 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”.

  2. 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?

    1. 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.

  3. 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….

    1. 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

  4. 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?

    1. 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

Leave a Reply