คำตอบสั้น ๆ: ติดตั้ง WP-CLI และใช้คำสั่งพื้นฐานจัดการ WordPress ผ่าน SSH ทั้งอัปเดตปลั๊กอิน จัดการผู้ใช้ ส่งออกฐานข้อมูล และแก้ปัญหาเมื่อเข้าหลังบ้านไม่ได้
คู่มือนี้อธิบาย WordPress ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
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 หากไม่ใส่ บทความของผู้ใช้นั้นจะถูกลบไปด้วย