ใช้ WP-CLI จัดการ WordPress บน VPS ผ่าน Command Line

ใช้ WP-CLI จัดการ WordPress บน VPS ผ่าน Command Line

มิถุนายน 2026 · อ่าน 7 นาที

WP-CLI (WordPress Command Line Interface) เป็นเครื่องมือที่ทุกคนที่ดูแล WordPress บน VPS ต้องใช้ ทำงานที่ผ่าน admin panel ได้หมด แต่เร็วกว่า สั่ง batch ได้ และทำ automation ผ่าน cron ได้ด้วย การอัพเดท plugin 50 ตัวที่ใช้เวลา 10 นาทีบน admin panel ทำได้ใน 30 วินาทีด้วย WP-CLI

ติดตั้ง WP-CLI

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

# ตรวจ version
wp --info

คำสั่งพื้นฐานที่ใช้บ่อย

# ต้อง cd ไปที่ WordPress root ก่อน
cd /var/www/example.com/public_html

# ดูสถานะ WordPress
wp core version
wp core is-installed

# อัพเดท WordPress core
wp core update
wp core update-db

# อัพเดท plugin ทั้งหมด
wp plugin update --all

# อัพเดท theme ทั้งหมด
wp theme update --all

จัดการ Plugin

# ดู plugin ทั้งหมด
wp plugin list

# ติดตั้ง plugin
wp plugin install woocommerce --activate

# ลบ plugin (ไม่เพียงแค่ deactivate)
wp plugin delete hello-dolly

# Activate/Deactivate
wp plugin activate contact-form-7
wp plugin deactivate contact-form-7

จัดการ Database

# Export database
wp db export /backup/$(date +%Y%m%d)-mysite.sql

# Import database
wp db import /backup/20260612-mysite.sql

# Search and Replace URL (หลังย้าย domain)
wp search-replace 'https://old-domain.com' 'https://new-domain.com'

# Optimize database
wp db optimize

จัดการ User

# ดู users
wp user list

# สร้าง admin user ใหม่
wp user create newadmin [email protected] --role=administrator --user_pass=SecurePass123

# Reset password
wp user update 1 --user_pass=NewPassword123

# ลบ user
wp user delete 5 --reassign=1
Tip: ถ้ารันในฐานะ root ให้เพิ่ม --allow-root หรือรันด้วย sudo -u www-data wp ... เพื่อให้ permission ของไฟล์ถูกต้อง

ตรวจสอบว่า WP-CLI ทำงานถูกต้อง

# ตรวจ WP-CLI รันได้
wp --info

# ตรวจว่า connect database ได้
wp db check

# ตรวจ WordPress สมบูรณ์ไหม
wp core verify-checksums

# ดู error logs
wp log read 2>/dev/null || tail -20 /var/www/example.com/wp-content/debug.log
Tip: wp doctor check --all (ต้องติดตั้ง wp-cli/doctor-command เพิ่ม) ตรวจ WordPress health ครอบคลุม ตั้งแต่ database, file permissions จนถึง update status

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

Error: "Error establishing a database connection"

wp-config.php ใช้ credentials ผิดหรือ MySQL ไม่รัน:

# ตรวจ MySQL
systemctl status mysql

# ทดสอบ connect ด้วย credentials ใน wp-config.php
wp db query "SELECT 1"

# ดู credentials
wp config get DB_HOST DB_NAME DB_USER

wp: command not found หลัง logout แล้ว login ใหม่

WP-CLI ติดตั้งใน PATH ที่ shell เห็น ตรวจว่าอยู่ใน /usr/local/bin:

which wp
ls -la /usr/local/bin/wp

# ถ้าไม่มีให้ copy ใหม่
sudo cp ~/wp-cli.phar /usr/local/bin/wp

Permission denied เมื่อรัน wp core update

User ที่รัน WP-CLI ไม่มีสิทธิ์เขียน WordPress directory:

# รันด้วย www-data user
sudo -u www-data wp core update --path=/var/www/example.com/public_html

# หรือเปลี่ยน ownership ชั่วคราว
sudo chown -R $USER:www-data /var/www/example.com
wp core update
sudo chown -R www-data:www-data /var/www/example.com

Search-replace ทำงานแต่ URL ยังผิด

WordPress cache ยังเก็บ URL เดิม ต้อง flush cache หลัง search-replace:

wp search-replace 'https://old-domain.com' 'https://new-domain.com' --dry-run  # ทดสอบก่อน
wp search-replace 'https://old-domain.com' 'https://new-domain.com'
wp cache flush
wp rewrite flush

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

WP-CLI อัพเดท WordPress ขณะที่มีคนเข้าเว็บได้ไหม?

ได้ แต่ควรเปิด maintenance mode ก่อน: wp maintenance-mode activate แล้ว update แล้วปิด wp maintenance-mode deactivate ลด risk ที่ผู้ใช้จะเห็น error ระหว่างอัพเดท

จะ automate การ update WordPress ผ่าน cron ได้ไหม?

ได้ เพิ่มใน crontab: 0 3 * * 0 cd /var/www/example.com/public_html && wp core update && wp plugin update --all แต่ควรทดสอบ staging ก่อน เพราะ plugin update บางครั้งทำให้ site พัง

WP-CLI ใช้กับ Multisite ได้ไหม?

ได้ ต้องเพิ่ม flag --url=subsite.example.com หรือ --network สำหรับ network-level operations เช่น wp plugin update --all --network อัพเดท plugin สำหรับทุก site ใน network