วิธี backup moodle

การ 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 ตรงช่อง Flie name ตั้งชื่อไฟล์ตามต้องการนามสกุล .sql  ตรงช่อง Save as type เลือกเป็น All Files (*.*) ตรงช่อง Encoding เลือกรายการ UTF-8 แล้วคลิก Save

4.  ย้าย mkcel.tar.gz , moddata.tar.gz , mkcel.sql มาไว้ที่เครื่อง AppServ ด้วย 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 มา เพื่อคืนค่าระบบให้เหมือนเดิม

ใส่ความเห็น