ลดความยุ่งยากในการใช้คลาวด์ พูดคุยกับเจ้าหน้าที่

Home จัดการ WordPress ด้วย WP-CLI

จัดการ WordPress ด้วย WP-CLI

WP-CLI คือเครื่องมือ Command Line อย่างเป็นทางการของ WordPress ใช้จัดการเว็บไซต์ได้เกือบทุกอย่างโดยไม่ต้องเปิดหน้าหลังบ้าน เช่น อัปเดตปลั๊กอิน รีเซ็ตรหัสผ่าน ส่งออกฐานข้อมูล หรือเปลี่ยน URL ทั้งเว็บ งานที่ต้องคลิกหลายสิบครั้งในหลังบ้านจะเหลือเพียงคำสั่งเดียว

WP-CLI มีประโยชน์ที่สุดในวันที่หน้าหลังบ้านเข้าไม่ได้ เช่น ลืมรหัสผ่าน หรือปลั๊กอินทำให้เว็บล่ม บทความนี้อธิบายการติดตั้งและคำสั่งที่ใช้บ่อยสำหรับงานดูแลเว็บไซต์ประจำวัน

สิ่งที่ต้องเตรียม

  • สิทธิ์เข้าเซิร์ฟเวอร์ผ่าน SSH ด้วยผู้ใช้ที่มีสิทธิ์ sudo หรือผู้ใช้เจ้าของเว็บไซต์
  • PHP แบบ Command Line (php) ติดตั้งอยู่แล้ว ตรวจด้วย php -v
  • ทราบตำแหน่งโฟลเดอร์เว็บไซต์ เช่น /var/www/example.com ซึ่งเป็นที่อยู่ของไฟล์ wp-config.php

ขั้นตอนที่ 1: ติดตั้ง WP-CLI

ดาวน์โหลดไฟล์ Phar ตามวิธีในเอกสารทางการ

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info

หากคำสั่งที่สองแสดงข้อมูลเวอร์ชัน PHP และ WP-CLI แปลว่าไฟล์ใช้งานได้ จากนั้นทำให้เรียกใช้ได้ด้วยคำสั่ง wp

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info

ในอนาคตอัปเดต WP-CLI ด้วย sudo wp cli update

หมายเหตุ: Plesk ที่ติดตั้ง WP Toolkit และ DirectAdmin บางเครื่องอาจมี WP-CLI ติดตั้งมาแล้ว ลองพิมพ์ wp --info ก่อนติดตั้งเอง

ขั้นตอนที่ 2: รันคำสั่งด้วยผู้ใช้ที่ถูกต้อง

WP-CLI จะปฏิเสธการรันด้วย root และแนะนำให้ใส่ --allow-root ไม่ควรทำเช่นนั้น เพราะไฟล์ที่ WP-CLI สร้าง เช่น ปลั๊กอินที่ติดตั้ง จะเป็นของ root และ WordPress จะเขียนทับไม่ได้ในภายหลัง ให้รันด้วยผู้ใช้เจ้าของไฟล์เว็บแทน

สภาพแวดล้อมผู้ใช้ที่มักเป็นเจ้าของไฟล์ตัวอย่างคำสั่ง
Ubuntu + Nginx/Apachewww-datasudo -u www-data wp plugin list
AlmaLinux/Rocky + Nginxnginxsudo -u nginx wp plugin list
AlmaLinux/Rocky + Apacheapachesudo -u apache wp plugin list
Plesk / DirectAdminผู้ใช้ของโดเมนนั้นSSH เข้าด้วยผู้ใช้นั้นโดยตรง

ตรวจว่าใครเป็นเจ้าของไฟล์ด้วย ls -l /var/www/example.com/wp-config.php คำสั่งทั้งหมดต้องรันในโฟลเดอร์เว็บไซต์ หรือระบุตำแหน่งด้วย --path

cd /var/www/example.com
sudo -u www-data wp core version

# หรือไม่ต้อง cd
sudo -u www-data wp core version --path=/var/www/example.com

ตัวอย่างต่อจากนี้จะเขียนแค่ wp ... เพื่อให้อ่านง่าย ให้เติม sudo -u ผู้ใช้ ตามเครื่องของท่าน

ขั้นตอนที่ 3: คำสั่งดูแล Core, ปลั๊กอิน และธีม

wp core version
wp core check-update
wp core update
wp core update-db

wp core update-db ใช้หลังอัปเดตรุ่นใหญ่ เพื่อปรับโครงสร้างฐานข้อมูล เหมือนหน้าจอ "Database Update Required" ในหลังบ้าน

wp plugin list
wp plugin install classic-editor --activate
wp plugin deactivate classic-editor
wp plugin update --all
wp theme list
wp theme activate twentytwentyfour

ผลของ wp plugin list เป็นตารางแสดงชื่อ สถานะ (active/inactive) มีอัปเดตหรือไม่ และเวอร์ชัน ชื่อที่ใช้ในคำสั่งคือชื่อโฟลเดอร์ของปลั๊กอิน (Slug) ไม่ใช่ชื่อที่แสดงในหลังบ้าน

ขั้นตอนที่ 4: จัดการผู้ใช้

wp user list --fields=ID,user_login,user_email,roles
wp user create somchai [email protected] --role=editor --prompt=user_pass
wp user update somchai --prompt=user_pass
wp user set-role somchai author
wp user delete olduser --reassign=1

--prompt=user_pass จะถามรหัสผ่านแบบไม่แสดงบนจอ ปลอดภัยกว่าการพิมพ์รหัสผ่านต่อท้ายคำสั่ง ซึ่งจะไปค้างอยู่ใน Shell History ส่วน --reassign=1 ใช้ย้ายบทความของผู้ใช้ที่ถูกลบไปให้ผู้ใช้ ID 1 หากไม่ใส่ บทความของผู้ใช้นั้นจะถูกลบไปด้วย

ขั้นตอนที่ 5: ฐานข้อมูลและการค้นหาแทนที่

wp db export ~/backup-$(date +%F).sql
wp db import ~/backup-2026-09-19.sql
wp db size --tables

wp db export อ่านข้อมูลเชื่อมต่อจาก wp-config.php เอง ไม่ต้องจำรหัสผ่านฐานข้อมูล ควรเก็บไฟล์ Export ไว้นอกโฟลเดอร์เว็บเสมอ เพื่อไม่ให้ใครดาวน์โหลดผ่านเบราว์เซอร์ได้

คำสั่ง wp search-replace แทนที่ข้อความทั้งฐานข้อมูลโดยจัดการข้อมูลแบบ Serialized ของ PHP ให้ถูกต้อง ซึ่ง SQL REPLACE() ธรรมดาทำไม่ได้ ใช้ --dry-run ดูก่อนเสมอ

wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run

การใช้งานจริงสำหรับเปลี่ยนโดเมนดูที่ เปลี่ยน URL เว็บไซต์ WordPress

ขั้นตอนที่ 6: คำสั่งแก้ปัญหาที่ใช้บ่อย

สถานการณ์คำสั่ง
ล้าง Object Cachewp cache flush
สร้าง Rewrite Rules ใหม่ (แก้ 404 ของ Permalink)wp rewrite flush
ดู URL ของเว็บwp option get siteurl และ wp option get home
ดูงาน WP-Cron ที่ค้างwp cron event list
เปิดโหมดปรับปรุงระบบwp maintenance-mode activate
รันคำสั่งโดยไม่โหลดปลั๊กอินและธีมwp plugin list --skip-plugins --skip-themes
ตรวจไฟล์ Core ว่าถูกแก้ไขหรือไม่wp core verify-checksums

ตัวเลือก --skip-plugins และ --skip-themes สำคัญมากเมื่อเว็บขึ้น Critical Error เพราะปลั๊กอินที่เสียจะทำให้ WP-CLI ล่มตามไปด้วย ดูวิธีใช้ต่อที่ ปิดปลั๊กอิน WordPress เมื่อเข้าหลังบ้านไม่ได้ ส่วนปัญหา Permalink ดู แก้ปัญหาหน้าเว็บ 404 หลังตั้ง Permalink ใน WordPress

ตรวจสอบผลลัพธ์

wp core is-installed && echo "WordPress OK"
wp option get blogname

หากคำสั่งแรกพิมพ์ WordPress OK และคำสั่งที่สองแสดงชื่อเว็บไซต์ แปลว่า WP-CLI เชื่อมต่อไฟล์และฐานข้อมูลได้ครบ

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

Error: This does not seem to be a WordPress installation.

รันคำสั่งผิดโฟลเดอร์ ให้ cd ไปยังโฟลเดอร์ที่มี wp-config.php หรือใช้ --path ในบางโครงสร้าง WordPress อยู่ในโฟลเดอร์ย่อย เช่น public_html/wp

Error establishing a database connection

WP-CLI อ่านค่า DB_HOST จาก wp-config.php หากตั้งเป็น localhost PHP CLI จะเชื่อมผ่าน Socket ซึ่งตำแหน่งอาจไม่ตรงกับที่เว็บใช้ ลองเปลี่ยนเป็น 127.0.0.1 หรือตรวจ pdo_mysql.default_socket / mysqli.default_socket ใน php.ini ของ CLI รายละเอียดเพิ่มเติมดูที่ แก้ปัญหา Error Establishing a Database Connection ใน WordPress

PHP Fatal error: Allowed memory size exhausted

PHP CLI ใช้ php.ini คนละไฟล์กับเว็บ ให้รันแบบกำหนดค่าชั่วคราว php -d memory_limit=512M /usr/local/bin/wp plugin update --all

PHP CLI คนละเวอร์ชันกับเว็บ

เครื่องที่มี PHP หลายเวอร์ชัน คำสั่ง php อาจชี้ไปรุ่นอื่น ให้เรียกตรง เช่น php8.3 /usr/local/bin/wp ... ดู ติดตั้ง PHP หลายเวอร์ชันบน Ubuntu

หากทำตามขั้นตอนแล้วยังติดปัญหา สามารถติดต่อทีมสนับสนุนของ THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/

ผู้ให้บริการคลาวด์ไทย
เพื่อธุรกิจของคนไทย

"มุ่งมั่น" และ "มั่นคง"
พร้อมรับมือทุกการเติบโต
Trust Cloud
คลาว์ที่ปลอดภัย
คือรากฐานที่มั่นคง
cloud security