การดูแล WordPress หลายเว็บไซต์บน Cloud VPS ของ de.co.th อาจเสียเวลามากหากต้องเข้า Dashboard ทีละเว็บเพื่ออัปเดต WP-CLI ช่วยให้คุณอัปเดต WordPress Core, Plugin และ Theme ทุกเว็บได้พร้อมกันด้วยคำสั่งเดียว บทความนี้จะแนะนำวิธีทำ Bulk Update อย่างปลอดภัย
ตรวจสอบสถานะ Update ทุกเว็บ
ก่อนอัปเดต ให้ตรวจสอบว่าแต่ละเว็บมี Update อะไรรออยู่บ้าง:
# ตรวจสอบ WordPress Core Update
wp core check-update --path=/var/www/site1
wp core check-update --path=/var/www/site2
# ตรวจสอบ Plugin Update ทุกเว็บ
for site in /var/www/site*/; do
echo "=== $site ==="
wp plugin list --update=available --path=$site --format=table
done
สร้าง Script อัปเดตทุกเว็บพร้อมกัน
สร้าง Shell Script สำหรับอัปเดตทุกเว็บอัตโนมัติ พร้อม Backup ก่อนอัปเดต:
#!/bin/bash
# bulk-update-wordpress.sh
set -e
SITES_DIR="/var/www"
BACKUP_DIR="/opt/backups"
DATE=$(date +%Y%m%d_%H%M%S)
LOG="/var/log/wp-bulk-update.log"
echo "[$(date)] Starting bulk update..." >> $LOG
for site in $SITES_DIR/site*/; do
SITE_NAME=$(basename $site)
echo "\n=== Updating $SITE_NAME ==="
# Backup Database ก่อน
wp db export "$BACKUP_DIR/${SITE_NAME}_db_$DATE.sql" --path=$site
# อัปเดต WordPress Core
wp core update --path=$site
# อัปเดต Database หลังอัปเดต Core
wp core update-db --path=$site
# อัปเดต Plugin ทั้งหมด
wp plugin update --all --path=$site
# อัปเดต Theme ทั้งหมด
wp theme update --all --path=$site
# Flush Cache
wp cache flush --path=$site
echo "$SITE_NAME updated successfully" >> $LOG
done
echo "[$(date)] Bulk update completed!" >> $LOG
อัปเดตเฉพาะ Plugin ที่ต้องการ
บางครั้งคุณอาจต้องการอัปเดตเฉพาะ Plugin บางตัว ไม่ใช่ทั้งหมด:
# อัปเดตเฉพาะ WooCommerce ทุกเว็บ
for site in /var/www/site*/; do
wp plugin update woocommerce --path=$site
done
# อัปเดต Plugin เฉพาะที่มี Security Fix
for site in /var/www/site*/; do
wp plugin update wordfence sucuri-scanner --path=$site
done
ตรวจสอบหลังอัปเดต
หลังจากอัปเดตเสร็จ ควรตรวจสอบสถานะของทุกเว็บ:
# ตรวจสอบว่าทุกเว็บทำงานปกติ
for site in /var/www/site*/; do
SITE_NAME=$(basename $site)
URL=$(wp option get siteurl --path=$site)
HTTP_CODE=$(curl -s -o /dev/null -w '%{http_code}' $URL)
echo "$SITE_NAME ($URL): HTTP $HTTP_CODE"
done
# ตรวจสอบ WordPress Version ทุกเว็บ
for site in /var/www/site*/; do
echo "$(basename $site): $(wp core version --path=$site)"
done
ตั้งค่า Auto-Update ด้วย Cron
ตั้ง Cron Job ให้อัปเดตอัตโนมัติทุกสัปดาห์:
# เพิ่ม Cron Job อัปเดตทุกวันจันทร์ตอน 02:00
crontab -e
0 2 * * 1 /opt/scripts/bulk-update-wordpress.sh >> /var/log/wp-bulk-update.log 2>&1
Rollback หากมีปัญหา
หาก Plugin หรือ Theme มีปัญหาหลังอัปเดต สามารถ Rollback กลับ Version เดิมได้:
# Rollback Plugin กลับ Version เดิม
wp plugin install woocommerce --version=8.5.0 --force --path=/var/www/site1
# Restore Database จาก Backup
wp db import /opt/backups/site1_db_20250327.sql --path=/var/www/site1
สรุป
การใช้ WP-CLI สำหรับ Bulk Update WordPress บน Cloud VPS ของ de.co.th ช่วยประหยัดเวลาอย่างมาก โดยเฉพาะเมื่อดูแลหลายเว็บไซต์ สิ่งสำคัญคือต้อง Backup ก่อนอัปเดตทุกครั้ง ตรวจสอบหลังอัปเดต และเตรียม Rollback Plan ไว้เสมอ

