ย้ายเว็บไซต์ระหว่าง Hosting อย่างปลอดภัย

คู่มือทีละขั้น ตั้งแต่ Backup ทุกอย่าง ทดสอบด้วย hosts file ไปจนถึงเปลี่ยน DNS โดยไม่มี Downtime

ย้ายเว็บไซต์ Website Migration ระหว่าง Hosting Server

เตรียมตัวก่อนย้าย Hosting

การย้าย Hosting ที่ดีต้องเตรียมการอย่างรอบคอบ ข้ามขั้นตอนใดขั้นตอนหนึ่งอาจทำให้เว็บดาวน์หรือข้อมูลหาย สิ่งที่ต้องเตรียมก่อนเริ่ม:

5 ขั้นตอนหลักการย้ายเว็บ

ขั้นที่ 1: Backup ข้อมูลทั้งหมด

ที่ Hosting เดิม ทำ Full Backup ผ่าน cPanel → Backup → Download a Full Account Backup หรือ Backup Wizard สำหรับ WordPress ใช้ Plugin เช่น UpdraftPlus หรือ All-in-One WP Migration เพื่อ Export ทุกอย่างเป็นไฟล์เดียว

# Backup Database ด้วย mysqldump (SSH)
mysqldump -u dbuser -p dbname > backup_$(date +%Y%m%d).sql

# Compress ไฟล์เว็บทั้งหมด
tar -czf website_backup.tar.gz ~/public_html/

ขั้นที่ 2: Upload ไฟล์ไปยัง Hosting ใหม่

สร้าง Account บน Hosting ใหม่ก่อน แล้วอัพโหลดไฟล์ผ่าน FTP หรือ File Manager ใน cPanel ถ้าใช้ WordPress ให้ตรวจสอบว่าไฟล์ทั้งหมดอยู่ใน public_html ครบถ้วน

ขั้นที่ 3: Import Database

สร้าง Database และ User ใหม่บน Hosting ใหม่ จากนั้น Import SQL ที่ Backup ไว้:

# Import ผ่าน phpMyAdmin: เลือก Database → Import → เลือกไฟล์ .sql

# หรือผ่าน SSH
mysql -u newdbuser -p newdbname < backup.sql

สำหรับ WordPress อย่าลืมอัพเดท wp-config.php ด้วยค่า Database ใหม่ และอาจต้องอัพเดท Site URL ใน Database ถ้า IP หรือ Domain เปลี่ยน

ขั้นที่ 4: ทดสอบด้วย hosts file ก่อนเปลี่ยน DNS

นี่คือขั้นตอนที่สำคัญที่สุด ใช้ hosts file หลอกให้คอมพิวเตอร์เราเปิดเว็บจาก Hosting ใหม่โดยที่ยังไม่ได้เปลี่ยน DNS ทำให้ทดสอบได้อย่างปลอดภัย

# แก้ไขไฟล์ hosts บน macOS/Linux
sudo nano /etc/hosts

# เพิ่มบรรทัดนี้ (แทน IP ด้วย IP ของ Hosting ใหม่)
1.2.3.4   yourdomain.com www.yourdomain.com

# บน Windows: C:\Windows\System32\drivers\etc\hosts

หลังทดสอบเสร็จให้ลบบรรทัดที่เพิ่มออก เพื่อให้คอมพิวเตอร์กลับไปใช้ DNS ปกติ

ขั้นที่ 5: ตั้งค่า TTL ต่ำก่อนเปลี่ยน DNS

ก่อนเปลี่ยน Nameserver 24-48 ชั่วโมง ให้ลด TTL ของ DNS Record ลงเหลือ 300 วินาที (5 นาที) เพื่อให้การเปลี่ยน DNS กระจายเร็วขึ้น หลังจากย้ายเสร็จแล้วค่อยเพิ่ม TTL กลับ

Checklist หลังย้ายเสร็จ

ตรวจสอบว่าย้ายเว็บสำเร็จ

# ตรวจสอบ IP ที่โดเมนชี้อยู่
dig +short yourdomain.com

# ตรวจสอบ HTTPS และ SSL
curl -vI https://yourdomain.com 2>&1 | grep -E "SSL|HTTP/"

# ทดสอบ Response Time
curl -o /dev/null -s -w "Total: %{time_total}s\n" https://yourdomain.com

# ตรวจสอบ Redirect ทำงานถูกต้อง
curl -IL http://yourdomain.com
Tip: หลังเปลี่ยน Nameserver แล้ว อย่าลบ Account บน Hosting เดิมทันที รอ 7-14 วันก่อน เผื่อ DNS บางจุดยังเก่าอยู่และต้องการ Fallback

แก้ปัญหาที่พบบ่อย

Error: เว็บแสดงหน้าว่างหรือ Error 500 หลัง Import Database

ตรวจสอบ wp-config.php (WordPress) ว่าค่า DB_NAME, DB_USER, DB_PASSWORD, DB_HOST ถูกต้องหรือไม่ DB_HOST บน cPanel มักเป็น localhost ไม่ใช่ IP Address

รูปภาพหายหรือ Media Files โหลดไม่ขึ้น

ตรวจสอบว่าอัพโหลด uploads/ folder ครบหรือยัง โดยเฉพาะถ้าใช้ FTP แบบ Partial Upload โฟลเดอร์นี้มักมีขนาดใหญ่และอัพโหลดนานที่สุด

DNS Propagation ช้ามาก เกิน 48 ชั่วโมง

ตรวจสอบว่าตั้ง TTL ต่ำไว้ก่อนเปลี่ยน DNS หรือไม่ ถ้าไม่ได้ตั้ง TTL ต้องรอ ISP แต่ละรายล้าง Cache เอง ในระหว่างนั้น ผู้ใช้บางคนอาจยังเข้า Hosting เดิมอยู่

คำถามที่พบบ่อย

Q: ย้าย Hosting มี Downtime ไหม?

A: ถ้าทำถูกวิธีจะ Downtime น้อยมาก เพราะทดสอบจาก Hosting ใหม่ก่อนผ่าน hosts file แล้วค่อยเปลี่ยน DNS เมื่อทุกอย่างพร้อม ช่วง DNS Propagation เว็บยังทำงานได้จาก Hosting เดิม

Q: อีเมลจะหายระหว่างย้าย Hosting ไหม?

A: ถ้าใช้ Email บน Hosting (cPanel Email) ต้องวางแผนพิเศษ แนะนำให้ใช้ External Email Provider เช่น Google Workspace หรือ Zoho Mail แยกจาก Hosting เพื่อป้องกันปัญหาระหว่างย้าย

Q: WordPress ย้าย Hosting ต้องทำอะไรเพิ่มพิเศษไหม?

A: ต้องอัพเดท wp-config.php ด้วยค่า Database ใหม่ และตรวจสอบ Site URL ใน Settings อาจต้องรัน Search & Replace ใน Database ถ้า IP Address ของ Hosting ใหม่แตกต่างออกไป