• การ backup moodle ทำเพื่อความปลอดภัยในการใช้งาน Moodle  หากมีปัญหาการใช้งานเราก็สามารถกู้ระบบคืนได้โดยง่าย
    ดังนั้นเราจึงควรสำรองระบบทั้งหมดมาไว้ที่ Server จำลองในเครื่องของเราซึ่งติดตั้งด้วย Appserv
    ในตัวอย่างจะเป็นการสำรองระบบ e-learning ของโรงเรียนมะขามสรรเสริญ
  • ข้อมูลใน Server Moodle ที่เป็น Server จริง
  • IP Server        202.143.137.38
    โฟลเดอร์         moodledata    อยู่ที่ /var/www
    โฟลเดอร์         mkcel               อยู่ที่ /var/www/html  เป็นโฟลเดอร์ที่ใช้ติดตั้ง Moodle ดังนั้นเวลาเข้าใช้งานต้องเรียก http://202.143.137.38/mkcel
  • ขั้นตอนโดยสรุปของการสำรองระบบ
  • 1.  zip  โฟลเดอร์  moodledata ซึ่งเป็นโฟลเดอร์ที่บรรจุข้อมูล ไฟล์ การบ้าน งาน และภาพต่างๆ ที่ user upload ขึ้นมา
  • 2.  zip  โฟลเดอร์  mkcel  ซึ่งเป็นโฟลเดอร์ที่ติดตั้ง Moodle
  • 3.  Export  ฐานข้อมูล mkcel โดยใช้คำสั่ง mysql หรือ phpMyAdmin แนะนำว่าใช้ phpMyAdmin ง่ายและสะดวกที่สุด
  • 4.  นำข้อมูลข้อ 1-3 ย้ายกลับมาที่ Appserv
  • 5.  เปลี่ยนแปลงรายละเอียดในไฟล์ config.php
  • 6.  ทดสอบการใช้งาน
  • ต่อไปก็เป็นรายละเอียดในการทำของ 6 ข้อข้างต้น
  • วิธี backup Moodle จาก Server จริงมาไว้ใน AppServ 
  • 1.  ใช้คำสั่ง  tar  สำเนาโฟลเดอร์ moodledata (ข้อความหลัเครื่องหมาย # เป็นคำอธิบาย)
  •       cd /var/www/                                                                #เข้าไปยังโฟลเดอร์ที่ moodledata อยู่
  •       tar  -zcvf  /home/moddata.tar.gz  moodledata       #zip โฟลเดอร์ moodledata ไปไว้ที่ /home
  • 2.  ใช้คำสั่ง  tar  สำเนาโฟลเดอร์ mkcel (ข้อความหลัเครื่องหมาย # เป็นคำอธิบาย)
  •       cd /var/www/html/                                             #เข้าไปยังโฟลเดอร์ที่ mkcel อยู่
  •       tar  -zcvf  /home/mkcel.tar.gz  mkcel              #zip โฟลเดอร์ mkcel ไปไว้ที่ /home
  • 3.  Export ฐานข้อมูล mkcel โดยใช้คำสั่ง mysql ดังนี้
  •      mysqldump -u root -p mkcel > mkcel.sql      #mkcel คือชื่อฐานข้อมูลที่เราต้องการ backup และบันทึกไว้เป็นไฟล์ชื่อ mkcel.sql
         ในการ Export ฐานข้อมูลนี้ถ้าจะให้สะดวก รวดเร็วพบปัญหาน้อยที่สุดแนะนำว่าใช้ phpMyAdmin ช่วยดีกว่าซึ่งมีวิธีการง่ายๆด้งนี้
  •      3.1 เปิด phpMyAdmin แล้วเลือกฐานข้อมูลที่ต้องการตามภาพด้านล่าง
  •                           
  •      3.2 คลิก ส่งออก (Export)
  •                          
  •      3.3 คลิก เลือกทั้งหมด (Select All) แล้วคลิกช่อง Creation/Update/Check dates ให้มีเครื่องหมายถูก แล้วคลิก
  •             ลงมือ ตามภาพด้านล่าง
  •                         
  •      3.4 เลือกข้อความทั้งหมดแล้วคัดลอกข้อความทั้งหมด
  •                         
  •      3.5 เปิดโปรแกรม Notepad แล้ววางข้อความที่คัดลอก ลงไป เสร็จแล้วคลิก File -> Save As
  •                         
  •      3.6 ตรงช่อง File name ตั้งชื่อไฟล์ตามต้องการนามสกุล .sql  ตรงช่อง Save as type เลือกเป็น All Files (*.*) ตรงช่อง Encoding                     เลือกรายการ UTF-8 แล้วคลิก Save
  •                         
  • 4.  ย้าย mkcel.tar.gz , moddata.tar.gz , mkcel.sql มาไว้ที่เครื่อง App Serv ด้วย FTP
  •      ใช้ winrar แตกไฟล์ mkcel.tar.gz , moddata.tar.gz
         ใช้ editplus เปิดไฟล์ mkcel.sql ค้นหาแล้วเปลี่ยนรายละเอียดดังนี้
         /var/www เป็น C:\\AppServ  (แก้ไขตำแหน่ง moodledata)
         http://202.143.137.38  เป็น  http://127.0.0.1  (แก้ไขตำแหน่ง moodle)
         ก่อนบันทึกไฟล์  ตรวจสอบอีกครั้งให้แน่ใจว่าแก้ไขหมดแล้ว เคยพบปัญหาว่าบางบรรทัดยังเป็น mkc.ac.th
        เมื่อนำไป restore ใน phpMyAdmin พอเปิดเข้าใช้งานเว็บจะพบปัญหา require once คือหาตำแหน่งไฟล์ไม่พบ
  • 5.  เปลี่ยนแปลงรายละเอียดในไฟล์ /mkcel/config.php
  •      $CFG->dbuser  เปลี่ยน  admin เป็น root หรือชื่อผู้ใช้ที่ติดต่อกับฐานข้อมูลได้ 
         $CFG->dbpass  เปลี่ยน  เป็นรหัสผ่านของ mysql ใน Appserv
         $CFG->wwwroot  เปลี่ยน wwwroot เป็น http://127.0.0.1
         $CFG->dirroot  เปลี่ยน dirroot  เป็น C:\AppServ\www\mkcel
         $CFG->dataroot  เปลี่ยน dataroot  เป็น C:\AppServ/moodledata
         $CFG->passwordsaltmain  เปลี่ยน passwordsaltmain ให้ตรงกับ config.php ของ Server จริง
  •      ถ้าเป็นการสำรองข้อมูลจาก Server จริงมาไว้ใน Appserv ก็ไม่ต้องเปลี่ยนอะไร ปัญหาของ passwordaltmain
  •      ที่ไม่ถูกต้องคือเปิดหน้าเว็บได้แต่จะไม่สามารถ Login เข้าระบบได้ แม้ว่าจะพิมพ์ชื่อผู้ใช้และรหัสผ่านอย่างถูกต้องแล้วก็ตาม
  •      คัดลอกโฟลเดอร์ mkcel ไปไว้ที่ C:\AppServ\www
         คัดลอกโฟลเดอร์ moodledata ไปไว้ที่ C:\AppServ
         ระวัง โฟลเดอร์มันซ้อนกันด้วย เช่น moodledata/moodledata/ หรือ mkcel/mkcel
  •      ใช้ phpMyAdmin สร้างฐานข้อมูลชื่อ mkcel อย่าลืมเลือก encoding เป็น UTF-8
         ใช้ phpMyAdmin คืนค่าฐานข้อมูลที่ backup กลับเข้าไปไว้ที่ฐานข้อมูล mkcel ที่สร้างไว้เมื่อครู่
         ไฟล์ที่ใช้คืนค่าก็คือไฟล์ mkcel.sql
  •      ดูการเปลี่ยน config.php จากตัวอย่างด้านล่างประกอบ ให้ดูที่ตัวหนาจะเป็นการเปลี่ยนแปลง
  •      <?php  /// Moodle Configuration File
  •      unset($CFG);
  •      $CFG = new stdClass();
  •      $CFG->dbtype    = 'mysql';
  •      $CFG->dbhost    = 'localhost';
  •      $CFG->dbname    = 'mkcel';
  •      $CFG->dbuser    = 'root';      เปลี่ยนเป็นชื่อผู้ใช้ที่ติดต่อกับ mysql ใน appserv
  •      $CFG->dbpass    = '123456';           เปลี่ยนเป็นรหัสผ่านผู้ใช้ที่ติดต่อกับ mysql ใน appserv
  •      $CFG->dbpersist =  false;
  •      $CFG->prefix    = 'mdl_';
  •      $CFG->wwwroot   = 'http://127.0.0.1/mkcel';           เปลี่ยนเป็น path ของ appserv
  •      $CFG->dirroot   = 'C:\AppServ\www\mkcel';            เปลี่ยนเป็น path ของ appserv
  •      $CFG->dataroot  = 'C:\AppServ/moodledata';          เปลี่ยนเป็น path ของ appserv เครื่องหมาย / อย่าเปลี่ยนเป็น \
  •      $CFG->admin     = 'admin';
  •      $CFG->directorypermissions = 00777;  // try 02777 on a server in Safe Mode
  •      $CFG->passwordsaltmain = ';<b2gYaF+h9Qyl8R%w~nthcR(2Fi'; ตรงนี้ต้องเหมือนกับ config.php
         ใน moodle ของ server จริงถ้าเป็นการ backup จาก Server จริงมาไว้ใน Appserv ไม่ต้องแก้ไขอะไร
         สำคัญเพราะเคยไม่เปลี่ยนแล้ว Login เข้าสุ่ระบบไม่ได้แม้ว่าจะพิมพ์ชื่อผู้ใช้กับรหัสผ่านถูกต้องกี่ครั้งก็ตาม
  •      require_once("$CFG->dirroot/lib/setup.php");
  •      // MAKE SURE WHEN YOU EDIT THIS FILE THAT THERE ARE NO SPACES, BLANK LINES,
  •      // RETURNS, OR ANYTHING ELSE AFTER THE TWO CHARACTERS ON THE NEXT LINE.
  •      ?>
  • 6. เสร็จแล้วก็ทดสอบการใช้งาน
  •      ไฟล์ที่ backup มาทุกไฟล์ให้เก็บไว้ หากวันไหน Server Moodle มีปัญหาต้องติดตั้งระบบใหม๋
         ให้อ่าน blog หัวข้อ วิธีคืนค่า moodle ที่ backup มา เพื่อคืนค่าระบบให้เหมือนเดิม