
จุดอ่อนสำคัญของ Wordpress สิ่งหนึ่งก็คือ เราไม่สามารถย้ายเว็บจากชื่อโดเมนเดิมเป็นชื่อใหม่ได้ง่ายนัก เนื่องจากตัวฐานข้อมูลที่มีการเก็บข้อมูลถึงระดับการเก็บชื่อโดเมน ซึ่งคำแนะนำจาก wordpress.org ก็คือให้ทำการ export post และ page จากเว็บเก่าออกมาทั้งหมด แล้วทำการลง Wordpress ใหม่ที่โดเมนใหม่พร้อมทั้งตั้งค่า ลง Plugins ให้เหมือนกับเว็บใหม่ แล้วจึงค่อย import post กับ page มายังเว็บใหม่ ซึ่งเป็นวิธีที่ยุ่งยากและใช้เวลานานมาก
วันนี้ผมก็เลยมาเสนอแนวทางอีกแนวทางนึงที่ผมใช้อยู่ แต่อาจจะไม่ได้เต็มร้อยนัก คือ เปลี่ยนชื่อโดเมนในฐานข้อมูลเองซะเลย ขั้นตอนในการทำมีดังนี้ครับ
- สำรองข้อมูลทั้งตัวเว็บและฐานข้อมูลก่อนทำ (+++สำคัญมาก+++)
- ทำการคัดลอกไฟล์เว็บและฐานข้อมูลของโดเมนเก่าทั้งหมดย้ายไปยังโดเมนใหม่
- แก้ไขไฟล์ wp-config.php ให้ตรงกับโดเมนและฐานข้อมูลใหม่ของเรา
- เปิด phpMyAdmin ไปที่ฐานข้อมูล Wordpress ของเว็บใหม่เรา แล้วไปที่ตาราง wp_posts จากนั้นให้แก้ไขชื่อโดเมนให้เป็นโดเมนใหม่ของเราที่ฟิลด์ option_name ที่มีค่าเป็น siteurl และ home
- เปิด phpMyAdmin ไปที่ฐานข้อมูล Wordpress ของเว็บเรา แล้วไปที่หน้า SQL จากนั้นให้พิมพ์คำสั่งเพื่อทำการเปลี่ยนโดเมนใหม่ทั้งหมดดังนี้ (สมมติว่าโดเมนเก่าคือ http://www.wingfoss.com ส่วนพาธของเว็บเก่าคือ /home/wingfoss/domain/wingfoss.com/public_html และโดเมนใหม่คือ http://www.wingfoss.in.th ส่วนพาธของเว็บใหม่คือ /home/wingfoss/domain/wingfoss.in.th/public_html)
UPDATE wp_posts SET guid = replace(guid, 'http://www.wingfoss.com','http://www.wingfoss.in.th'); UPDATE wp_posts SET post_content = replace(post_content, 'http://www.wingfoss.com', 'http://www.wingfoss.in.th'); UPDATE wp_postmeta SET meta_value = replace(meta_value, '/home/wingfoss/domain/wingfoss.com/public_html', '/home/wingfoss/domain/wingfoss.in.th/public_html');
- หลังจากนี้อาจจะยังมีโดเมนเก่าค้างคาอยู่กับ Plugins บางตัวหรือบางจุดในฐานข้อมูล แนวทางการแก้ไขคือ ให้เรา Search ชื่อโดเมนเราจากใน phpMyAdmin และทำการแก้ไขทีละตัวด้วยตัวเอง หรือจะแก้ไขคำสั่ง SQL ข้างบนเพื่อเปลี่ยนชื่อโดเมนก็ได้ แต่ระวังอย่าไปยุ่งกับข้อมูลที่เป็น Serialize เป็นอันขาดถ้าไม่เข้าใจจริง มิฉะนั้นอาจจะทำให้เว็บมีปัญหาได้
- ลองเปิดเว็บทดสอบดูว่ายังมีปัญหาที่จุดไหนอีกบ้างหรือเปล่า
วิธีนี้ก็เป็นวิธีการย้าย Wordpress ไปยังโดเมนใหม่อย่างรวดเร็วด้วยการแก้ที่ฐานข้อมูลโดยตรง ที่ทำให้ประหยัดเวลาขึ้นอีกเยอะถ้าเว็บมีขนาดใหญ่และซับซ้อนครับ แต่อย่าลืมก่อนทำต้องทำการสำรองข้อมูลทั้งตัวเว็บและฐานข้อมูลก่อนด้วย ไม่งั้นอาจจะเสียน้ำตาทีหลังเอาได้นะครับ
ปล.เว็บ wingfoss.in.th ใช้ Drupal ในการทำ แต่ไม่เขียนบทความเกี่ยวกับ Drupal บ้างเลยแฮะ ฮ่วย!!!

Comments
ทำไม่ได้ครับ
ทำไม่ได้ครับ ของผมรุ่นอัพเดทมันจะมีฐานข้อมูลเหมือนกันรึปล่าว
ทำได้แล้วครับ ขอบคุณมาก
ทำได้แล้วครับ ขอบคุณมาก
Add new comment