ย้ายโฮสต์ : ย้าย SMF Forum

วันนี้เป็นวันครบรอบปีที่ 8 ของเหตุการณ์ เก้า สิบเอ็ด ( 911 ) ที่หลาย ๆ คนคงจะจำเหตุการณ์ได้เป็นอย่างดี แต่วันนี้ก็นับว่าโชคดี (เล็กน้อย) สำหรับผมเมื่อทาง WPWEBHOST แจ้งว่า ได้โอนเงินให้แล้วทาง paypal ผมก็จัดการโอนเข้าบัญชีธนาคารเรียบร้อยแล้ว

การย้ายโฮสต์ผ่านไปด้วยดี ราบรื่น ไม่มีปัญหา (คือไม่มีปัญหาหลังจากย้ายเสร็จเรียบร้อยที่ต้องตามแก้ไขปัญหาภายหลัง) ไม่ว่าจะ WordPress 2 บล็อก ฟอรั่มและสมุดเยี่ยม แต่ปัญหาเล็กน้อยที่ไม่ใช่ปัญหาหลักและเกินความสามารถ นั่นก็คือ ตัวนับสถิติในส่วนของเว็บที่เป็น HTML นั้นไม่สามารถสำรองข้อมูลมาได้ ซึ่งต้องทำการสร้างตัวนับใหม่ด้วยมือแล้วก็นับสถิติต่อจากเดิม (หากต้องการ) ซึ่งผมก็ไม่ได้กังวลอะไรกับเรื่องสถิติ แต่สิ่งที่มีส่วนทำให้การย้ายง่ายขึ้น ก็คงเป็นเพราะโฮสต์เดิมและโฮสต์ใหม่ใช้ Control Panel เหมือน ๆ กัน นั่นคือ Cpanel ทำให้สามารถทำงานได้อย่างสะดวก

การย้ายโฮสต์นั้นมีหลายส่วนด้วยกัน ผมขอเล่าเรื่องการย้ายข้อมูลของบอร์ด SMF กันก่อนก็แล้วกัน บอร์ดนี้ใช้มาหลายปี ข้อมูลเยอะ ตอนดึงข้อมูลจากโฮสต์เดิมก็สบาย ๆ ไม่มีปัญหา แต่ตอนนำเข้าในโฮสต์ใหม่นี่สิ กว่าจะนำเข้าได้ error ไปหลายรอบ ดึงข้อมูลจาก phpmyadmin มาเป็น .zip พอ import .zip เข้าโฮสต์ใหม่ผ่าน phpmyadmin เกิด error

Error in ZIP archive: CRC32 checksum is not equal with the value in header information.

เซ็งเป็ดเลยพี่น้อง หลายรอบก็ไม่ผ่าน เลยเอาไฟล์ .sql ด้านในออกมา ไฟล์ใหญ่ error อีก

Fatal error: Maximum execution time of 300 seconds exceeded in /usr/local/cpanel/base/3rdparty/phpMyAdmin/libraries/import/sql.php on line 124

ลองไปลองมาตั้งหลายรอบ หลาย ๆ วิธี ทำงานอื่น ๆ ไปด้วย ใช้เวลานานเลย ไม่แน่ใจว่าเป็นเพราะอินเทอร์เน็ตหรือเปล่า มันถึงทำงานช้า เพราะคืน 8 กันยายน ฝนตกหนัก เช้ามาเน็ตช้า เพราะว่าคู่สายโทรศัพท์ไม่ค่อยดี เสียงมันซ่า และใช้เน็ตไป หลุดบ่อย ๆ

เมื่อ import ข้อมูลไปเรียบร้อยแล้วก็ไม่ต้องไปกังวลเรื่องอื่นแล้ว ก็ใช้ประสบการณ์ในการย้าย SMF ของเว็บอื่นมาเป็นข้อมูล แล้วอีกอย่างก็คือ เรื่องข้อมูลไฟล์ต่าง ๆ ของ SMF นั้น บีบอัดจากโฮสต์เดิมมาเป็น .zip แล้วก็อัพโหลดเข้าโฮสต์ใหม่เป็น .zip แล้วสั่งขยายไฟล์ต่าง ๆ ผ่าน File Manager ใน Cpanel เสียเวลาไม่นาน

จากนั้นก็ดึงไฟล์ Settings.php ที่อยู่ในไฟล์ .zip ในเครื่องของเราออกมาแก้ไขข้อมูล เกี่ยวกับฐานข้อมูล และ path ของ server (เช่น /home/account/public_html/forum) ให้ถูกต้อง แล้วอัพโหลดไปทับไฟล์เดิมบนโฮสต์

แล้วเข้าไปยังฐานข้อมูล MySQL ในโฮสต์ใหม่ แก้ path ต่าง ๆ ของธีม, ไฟล์แนบ เป็นต้นให้ถูกต้อง โดยเข้าไปแก้ไขในตารางที่เก็บข้อมูลเกี่ยวกับการตั้งค่าต่าง ๆ ของ SMF นั่นเอง การแก้ไขเกี่ยวกับ SMF ก็หมดเพียงเท่านี้ ไม่ต้องทำอะไรเพิ่มเติมอีกแล้ว ก็เหลือเพียงรอการอัพเดทของ DNS เท่านั้นเอง

แต่…DNS อัพเดทเรียบร้อยเมื่อเข้ามาทำงานวันถัดมา ก็ลองเช็ค SMF ว่าทำงานปกติไหม ตามคาด ทุกอย่างเรียบร้อย ไม่มีอะไรต้องแก้ไข จึงไปเช็คฐานข้อมูลเก่าดู พบว่า ในช่วงที่รอ DNS อัพเดทนั้น มีการสมัครสมาชิกหลายคนเหมือนกัน ไม่อยากทิ้งข้อมูลนั้นไป ก็เลยดึงข้อมูลสมาชิกที่เพิ่มเข้ามาหลังจากเก็บข้อมูลเก่าไปแล้ว โดยการส่งออกเฉพาะตารางสมาชิกเท่านั้นออกมา

จากนั้นก็ลบข้อมูลสมาชิกเดิมออกให้หมด ให้เหลือแต่สมาชิกใหม่ แล้วทำการแก้ไขข้อมูลหมายเลขสมาชิกให้เป็นหมายเลขต่อจากหมายเลขปัจจุบันจากข้อมูลในโฮสต์ใหม่ (ซึ่งมีคนสมัครสมาชิกเพิ่มเติมจากข้อมูลเก่า) แล้วทำการ Import เข้าไปต่อข้อมูลเดิมในโฮสต์ใหม่ เข้าสู่ระบบควบคุมการบำรุงรักษาของ SMF เลือกเมนู “บำรุงรักษา” แล้วเลือก “ปรับปรุงตารางทั้งหมดเพื่อเพิ่มประสิทธิภาพ” และ “นับจำนวนบอร์ดทั้งหมดและสถิติใหม่”

ทำการบำรุงรักษาระบบเช่นนั้น ทำให้ตัวเลขการนับจำนวนสมาชิกและข้อมูลสถิติต่าง ๆ เป็นจริงตามที่ควรจะเป็น สมาชิกต่าง ๆ ไม่ตกหล่น บอร์ด SMF ทำงานได้ตามปกติ ไม่มีปัญหาอะไร ขั้นตอนสรุปของย้ายบอร์ด SMF ดังนี้

โฮสต์เก่า
1. สำรองข้อมูลไฟล์ต่าง ๆ
2. สำรองฐานข้อมูล

โฮสต์ใหม่
1. อัพโหลดไฟล์ SMF
2. สร้างฐานข้อมูลและนำเข้าฐานข้อมูลเดิม
3. แก้ไขไฟล์ Settings.php แก้ไขข้อมูลฐานข้อมูล และ path ของ Server
4. แก้ไขข้อมูลในฐานข้อมูลในตารางที่เก็บข้อมูลเกี่ยวกับการตั้งค่าของ SMF โดยแก้ไข path server ให้กับพวกไฟล์แนบ, ไฟล์ที่อัพโหลด, ไฟล์ธีม เป็นต้น

เท่านี้ก็เรียบร้อยแล้วหล่ะครับ ส่วนเรื่องการจะเพิ่มสมาชิกที่เพิ่มเข้ามาในช่วงที่รอ DNS อัพเดทหรือไม่นั้น อันนี้ก็แล้วแต่ความสะดวกหล่ะครับ

และนี่ก็เป็นขั้นตอนต่าง ๆ ในการที่ผมย้ายโฮสต์ในส่วนของบอร์ด SMF ในลักษณะที่ย้ายข้อมูลต่าง ๆ ให้เรียบร้อยก่อนที่ DNS จะอัพเดทชี้โดเมนไปยังโฮสต์ใหม่

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>