จัดการ 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/Apache | www-data | sudo -u www-data wp plugin list |
| AlmaLinux/Rocky + Nginx | nginx | sudo -u nginx wp plugin list |
| AlmaLinux/Rocky + Apache | apache | sudo -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 Cache | wp 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/
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


