วิธี Backup WordPress บน Cloud VPS ของ de.co.th (ครบทุกวิธี)

Backup คือสิ่งสำคัญที่สุดในการดูแลเว็บไซต์ WordPress ไม่ว่าจะเกิดอะไรขึ้น ไม่ว่าจะเป็นการถูกแฮ็ก อัปเดต Plugin หรือ Theme แล้วพัง เซิร์ฟเวอร์ล่ม หรือแม้แต่ลบไฟล์ผิด การมี Backup ที่ดีจะช่วยให้กู้คืนได้ภายในไม่กี่นาที บทความนี้รวบรวมทุกวิธี Backup สำหรับ WordPress บน Cloud VPS ของ de.co.th ครบทุกวิธีในที่เดียว

ทำไม Backup ถึงสำคัญ?

หลายคนมองข้ามการ Backup จนกว่าจะเกิดเหตุการณ์ไม่คาดฝัน ข้อมูลสถิติพบว่าเว็บไซต์ WordPress มากกว่า 30,000 เว็บถูกแฮ็กทุกวัน และ 60% ของธุรกิจขนาดเล็กที่สูญเสียข้อมูลสำคัญต้องปิดตัวภายใน 6 เดือน ดังนั้นการ Backup จึงไม่ใช่ตัวเลือก แต่คือสิ่งจำเป็นที่ต้องทำ

เหตุการณ์ที่อาจทำให้ต้องการ Backup ได้แก่:

  • ถูกแฮ็ก มีมัลแวร์ หรือถูก Defacement
  • อัปเดต WordPress Core, Plugin หรือ Theme แล้วเว็บพัง
  • Human Error เช่น ลบ Post หรือ Page สำคัญโดยไม่ตั้งใจ
  • ปัญหาฮาร์ดแวร์ของเซิร์ฟเวอร์
  • ต้องการย้ายเซิร์ฟเวอร์หรือโดเมน
  • การอัปเดตฐานข้อมูลผิดพลาดจาก Plugin

วิธีที่ 1: Backup ผ่าน Plesk Backup Manager

Plesk มาพร้อมกับ Backup Manager ในตัวที่ใช้งานง่ายมาก สามารถ Backup ได้ทั้งไฟล์เว็บไซต์และฐานข้อมูลพร้อมกัน รวมถึงการตั้งค่าของ Plesk เองด้วย

วิธี Backup แบบ Manual

  • เข้า Plesk Panel > Websites & Domains
  • คลิก Backup Manager
  • คลิก Back Up
  • เลือก Full Backup (รวมทั้งไฟล์และ DB) หรือ Configuration + Content
  • เลือกปลายทาง: Local Storage หรือ Remote Storage (FTP, S3, Dropbox)
  • คลิก OK รอจนเสร็จ

ตั้งค่า Backup อัตโนมัติ (Scheduled)

ใน Backup Manager ให้คลิก Scheduled Backup Settings แล้วตั้งค่าได้ตามต้องการ เช่น Backup ทุกวันตอนตี 3 เก็บไว้ 7 Backup ล่าสุด และส่งไปเก็บที่ Remote FTP/S3 เพื่อความปลอดภัยสูงสุด

วิธีที่ 2: Backup ด้วย UpdraftPlus Plugin

UpdraftPlus เป็น WordPress Backup Plugin ที่ได้รับความนิยมสูงสุด มีผู้ใช้งานมากกว่า 3 ล้านเว็บไซต์ทั่วโลก ใช้งานง่ายมากและรองรับ Remote Storage หลายประเภท

วิธีติดตั้งและตั้งค่า

  • ไปที่ WordPress Dashboard > Plugins > Add New > ค้นหา “UpdraftPlus” > Install & Activate
  • ไปที่ Settings > UpdraftPlus Backups
  • แท็บ Settings: เลือกความถี่ Backup ไฟล์ (เช่น ทุกวัน) และ DB (เช่น ทุก 4 ชั่วโมง)
  • เลือกจำนวน Backup ที่เก็บไว้ (แนะนำ 7)
  • เลือก Remote Storage: Google Drive, Dropbox, Amazon S3, OneDrive, SFTP, FTP, Email
  • บันทึกการตั้งค่าและทดสอบ Backup ด้วยปุ่ม Backup Now

การกู้คืนจาก UpdraftPlus

เมื่อต้องการกู้คืน ไปที่ Settings > UpdraftPlus > แท็บ Existing Backups เลือก Backup ที่ต้องการ แล้วคลิก Restore เลือก Component ที่ต้องการกู้คืน (Files, Database, Plugins, Themes, Uploads) แล้วรอสักครู่ ง่ายมาก

วิธีที่ 3: Backup Manual ด้วย Command Line (CLI)

สำหรับผู้ที่ชอบควบคุมทุกอย่างด้วยตัวเอง การ Backup ผ่าน SSH เป็นวิธีที่ยืดหยุ่นที่สุด สามารถกำหนดรูปแบบ ตำแหน่งเก็บ และ Schedule ได้อย่างอิสระ

# Backup เฉพาะ Database
mysqldump -u root -p wordpress_db > /backup/db_$(date +%Y%m%d_%H%M%S).sql

# Backup พร้อม Compress
mysqldump -u root -p wordpress_db | gzip > /backup/db_$(date +%Y%m%d).sql.gz

# Backup ไฟล์ทั้งหมดของ WordPress
tar -czf /backup/wp_files_$(date +%Y%m%d).tar.gz /var/www/html/

# Backup เฉพาะ wp-content (ไฟล์ที่เปลี่ยนแปลงบ่อย)
tar -czf /backup/wp_content_$(date +%Y%m%d).tar.gz /var/www/html/wp-content/

# ตรวจสอบขนาด Backup
du -sh /backup/*

วิธีที่ 4: Automated Backup ด้วย Shell Script + Cron Job

วิธีที่ดีที่สุดคือสร้าง Shell Script แล้วให้ Cron Job รันอัตโนมัติทุกวัน Script ด้านล่างนี้ Backup ทั้ง DB และไฟล์ แล้วลบ Backup เก่าที่เกิน 7 วัน:

#!/bin/bash
# /root/backup-wordpress.sh

# ตัวแปร
SITE_DIR="/var/www/html"
DB_NAME="wordpress_db"
DB_USER="root"
DB_PASS="your_password"
BACKUP_DIR="/backup/wordpress"
KEEP_DAYS=7
DATE=$(date +%Y%m%d_%H%M%S)

# สร้างโฟลเดอร์ถ้ายังไม่มี
mkdir -p $BACKUP_DIR

# Backup Database
echo "[$(date)] Backing up database..."
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_$DATE.sql.gz

# Backup WordPress Files
echo "[$(date)] Backing up files..."
tar -czf $BACKUP_DIR/files_$DATE.tar.gz $SITE_DIR

# ลบ Backup เก่าเกิน 7 วัน
echo "[$(date)] Removing old backups..."
find $BACKUP_DIR -name "*.gz" -mtime +$KEEP_DAYS -delete

# แสดงขนาด Backup ปัจจุบัน
echo "[$(date)] Backup complete. Size:"
du -sh $BACKUP_DIR

echo "[$(date)] Done!"

บันทึก Script แล้วให้สิทธิ์รัน:

chmod +x /root/backup-wordpress.sh

# เพิ่ม Cron Job Backup ทุกวันตอนตี 2
crontab -e
# เพิ่มบรรทัดนี้:
0 2 * * * /root/backup-wordpress.sh >> /var/log/wp-backup.log 2>&1

วิธีที่ 5: Backup ไปยัง Remote Storage (S3 / Rclone)

การเก็บ Backup ไว้บนเซิร์ฟเวอร์เดียวกันยังไม่ปลอดภัยพอ หากเซิร์ฟเวอร์เสียหรือถูกแฮ็ก Backup ก็จะหายไปด้วย แนะนำให้ส่ง Backup ไปเก็บที่ Remote Storage เช่น AWS S3, Wasabi, Backblaze B2 หรือ Google Drive ด้วย Rclone

# ติดตั้ง Rclone
curl https://rclone.org/install.sh | sudo bash

# ตั้งค่า Remote (ตัวอย่าง: S3)
rclone config
# ทำตามขั้นตอน: new remote > s3 > ใส่ Access Key, Secret Key, Region

# Sync Backup ไปยัง S3
rclone sync /backup/wordpress s3-remote:my-backup-bucket/wordpress/

# เพิ่มใน Cron Job หลัง Backup เสร็จ
30 2 * * * rclone sync /backup/wordpress s3-remote:my-bucket/wordpress/ >> /var/log/rclone.log 2>&1

หลักการ Backup 3-2-1

มาตรฐานสากลสำหรับการ Backup คือ 3-2-1 Rule:

  • 3 copies — มี Backup อย่างน้อย 3 ชุด (Original + 2 Backup)
  • 2 media — เก็บใน Storage อย่างน้อย 2 ประเภท (เช่น Local Disk + Cloud)
  • 1 offsite — อย่างน้อย 1 ชุดต้องอยู่นอก Site (Remote Storage หรือ Cloud)

วิธีทดสอบ Backup (สำคัญมาก!)

Backup ที่ไม่เคยทดสอบกู้คืน ไม่ใช่ Backup ที่เชื่อถือได้ ควรทดสอบ Restore อย่างน้อยเดือนละ 1 ครั้ง ด้วยวิธีนี้:

  • ตั้ง WordPress Test Site บน Subdomain หรือ VPS ทดสอบ
  • Restore Backup ล่าสุดไปยัง Test Site
  • ตรวจสอบว่าเว็บไซต์ทำงานได้ปกติ ข้อมูลครบถ้วน
  • บันทึกเวลาที่ใช้ Restore เพื่อประเมิน RTO (Recovery Time Objective)

สรุป: Checklist Backup WordPress ที่ดี

  • ✅ Backup อัตโนมัติทุกวันอย่างน้อย 1 ครั้ง
  • ✅ Backup ทั้ง Database และ Files
  • ✅ เก็บ Backup ไว้ที่ Remote Storage ด้วย
  • ✅ เก็บ Backup ย้อนหลังอย่างน้อย 7-30 วัน
  • ✅ Backup พิเศษก่อนอัปเดต Plugin/Theme/Core ทุกครั้ง
  • ✅ ทดสอบกู้คืน Backup เดือนละ 1 ครั้ง
  • ✅ Monitor แจ้งเตือนเมื่อ Backup ล้มเหลว

ด้วย Cloud VPS ของ de.co.th ที่ให้ Root Access เต็มรูปแบบ คุณสามารถตั้งค่าทุกวิธีที่กล่าวมาได้อย่างอิสระ ไม่ว่าจะเป็น Plesk Backup Manager, Shell Script, Cron Job หรือ Rclone ไปยัง Remote Storage เพื่อปกป้องเว็บไซต์ WordPress ของคุณอย่างครบถ้วน