ปิดปลั๊กอิน WordPress เมื่อเข้าหลังบ้านไม่ได้
ปลั๊กอินที่อัปเดตแล้วไม่เข้ากับเวอร์ชัน PHP ปลั๊กอินสองตัวที่ทำงานชนกัน หรือปลั๊กอินความปลอดภัยที่บล็อกการเข้าสู่ระบบของเราเอง ล้วนทำให้เข้าหน้าหลังบ้าน WordPress ไม่ได้ เมื่อเข้า /wp-admin ไม่ได้ ก็กดปุ่ม Deactivate ในหน้า Plugins ไม่ได้เช่นกัน
บทความนี้รวม 4 วิธีปิดปลั๊กอินจากภายนอก ตั้งแต่วิธีที่แม่นยำที่สุด (WP-CLI) ไปจนถึงวิธีที่ใช้ได้แม้มีแค่ File Manager หรือ phpMyAdmin พร้อมวิธีหาว่าปลั๊กอินตัวใดเป็นต้นเหตุ
สิ่งที่ต้องเตรียม
- ช่องทางใดช่องทางหนึ่ง: SSH, SFTP/FTP, File Manager ของ Plesk หรือ DirectAdmin, หรือ phpMyAdmin
- ทราบตำแหน่งโฟลเดอร์เว็บไซต์ เช่น
/var/www/example.comหรือhttpdocsบน Plesk และpublic_htmlบน DirectAdmin - ไฟล์สำรองเว็บไซต์ หากจะแก้ฐานข้อมูลโดยตรง
หากยังไม่รู้ว่าปลั๊กอินตัวใดเป็นต้นเหตุ ให้ดู Log ก่อนตาม แก้ปัญหา "There has been a critical error" ใน WordPress ด้วย WP_DEBUG ข้อความ Error มักระบุ Path wp-content/plugins/ชื่อปลั๊กอิน/ ไว้ชัดเจน
วิธีที่ 1: ปิดด้วย WP-CLI (แนะนำ)
SSH เข้าเซิร์ฟเวอร์แล้วไปยังโฟลเดอร์เว็บ รันด้วยผู้ใช้เจ้าของไฟล์ (ดู จัดการ WordPress ด้วย WP-CLI) ใส่ --skip-plugins และ --skip-themes ทุกครั้ง เพื่อไม่ให้ปลั๊กอินที่เสียทำให้ WP-CLI ล่มตาม
cd /var/www/example.com
wp plugin list --skip-plugins --skip-themes
ผลลัพธ์เป็นตารางแสดงชื่อ (Slug) และสถานะ จากนั้นปิดตัวที่สงสัย
wp plugin deactivate wordfence --skip-plugins --skip-themes
ผลที่ถูกต้องคือ Plugin 'wordfence' deactivated. และ Success: Deactivated 1 of 1 plugins. หากไม่รู้ว่าตัวไหน ให้ปิดทั้งหมดก่อน
wp plugin list --status=active --field=name --skip-plugins --skip-themes > ~/active-plugins.txt
wp plugin deactivate --all --skip-plugins --skip-themes
บรรทัดแรกบันทึกรายชื่อปลั๊กอินที่เปิดอยู่ไว้ เพื่อเปิดกลับได้ครบในภายหลัง
วิธีที่ 2: เปลี่ยนชื่อโฟลเดอร์ปลั๊กอิน
WordPress โหลดปลั๊กอินจากโฟลเดอร์ใน wp-content/plugins/ หากหาโฟลเดอร์ไม่พบ ปลั๊กอินนั้นจะไม่ถูกโหลด วิธีนี้ใช้ได้ทั้ง SSH, SFTP และ File Manager
ปิดทีละตัว
cd /var/www/example.com/wp-content/plugins
mv wordfence wordfence.off
บน File Manager ของ Plesk หรือ DirectAdmin ให้คลิกขวาที่โฟลเดอร์ปลั๊กอินแล้วเลือก Rename (ดู อัปโหลดและจัดการไฟล์เว็บไซต์ด้วย File Manager บน Plesk และ จัดการไฟล์เว็บไซต์ด้วย File Manager บน DirectAdmin)
ปิดทั้งหมดพร้อมกัน
cd /var/www/example.com/wp-content
mv plugins plugins.off
mkdir plugins
จากนั้นเข้าหลังบ้าน หากเข้าได้แปลว่าต้นเหตุคือปลั๊กอินตัวใดตัวหนึ่ง ย้ายโฟลเดอร์กลับ
rmdir plugins
mv plugins.off plugins
ข้อควรรู้: เมื่อ WordPress ตรวจพบว่าโฟลเดอร์ปลั๊กอินหายไป (เช่น เมื่อเปิดหน้า Plugins) จะนำปลั๊กอินนั้นออกจากรายการที่เปิดใช้งานอย่างถาวร หลังเปลี่ยนชื่อกลับ ปลั๊กอินจะอยู่ในสถานะปิด และต้องเปิดใหม่เองทีละตัวในหน้า Plugins ข้อดีคือใช้หาตัวต้นเหตุได้ง่าย ข้อเสียคือต้องจำว่าเดิมเปิดตัวใดไว้บ้าง
วิธีที่ 3: แก้ค่า active_plugins ในฐานข้อมูล
ใช้เมื่อเข้าไฟล์ไม่ได้แต่เข้า phpMyAdmin ได้ รายการปลั๊กอินที่เปิดใช้งานเก็บอยู่ในตาราง wp_options แถว active_plugins (Prefix อาจไม่ใช่ wp_ ดูค่า $table_prefix ใน wp-config.php)
- เปิด phpMyAdmin เลือกฐานข้อมูลของเว็บ แล้วเปิดแท็บ SQL
- ดูค่าปัจจุบันแล้วคัดลอกเก็บไว้ในไฟล์ข้อความ
SELECT option_value FROM wp_options WHERE option_name = 'active_plugins';
ค่าที่ได้มีลักษณะแบบนี้
a:2:{i:0;s:19:"akismet/akismet.php";i:1;s:23:"wordfence/wordfence.php";}
- ปิดปลั๊กอินทั้งหมดด้วยการตั้งค่าเป็นรายการว่าง
UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';
ห้ามแก้ค่านี้ด้วยการลบบางส่วนด้วยมือ เพราะเป็นข้อมูลแบบ PHP Serialized ที่ระบุจำนวนรายการ (a:2) และความยาวข้อความ (s:19) ไว้ หากตัวเลขไม่ตรง WordPress จะอ่านค่าไม่ได้ การตั้งเป็น a:0:{} ทั้งหมดปลอดภัยที่สุด
บน Multisite ปลั๊กอินที่เปิดทั้งเครือข่าย (Network Activate) เก็บอยู่ในตาราง wp_sitemeta ที่ meta_key = 'active_sitewide_plugins' แทน
วิธีที่ 4: ปลั๊กอิน Must-Use และธีม
ปลั๊กอินในโฟลเดอร์ wp-content/mu-plugins/ ทำงานเสมอ และไม่มีปุ่มปิดในหลังบ้าน วิธี 1 และ 3 ใช้ไม่ได้ ต้องย้ายไฟล์ออกจากโฟลเดอร์นั้น เช่น mv wp-content/mu-plugins/custom.php ~/ โฮสต์บางแห่งวางไฟล์ Must-Use ของตัวเองไว้ในนี้ ให้ย้ายเฉพาะไฟล์ที่ Error Log ชี้ถึง
หากต้นเหตุคือธีม ให้สลับเป็นธีมมาตรฐานที่ติดตั้งอยู่
wp theme list --skip-plugins --skip-themes
wp theme activate twentytwentyfour --skip-plugins --skip-themes
ไม่มี SSH ให้เปลี่ยนชื่อโฟลเดอร์ธีมที่ใช้อยู่ใน wp-content/themes/ WordPress จะเปลี่ยนไปใช้ธีมมาตรฐานเริ่มต้น (ค่า WP_DEFAULT_THEME) ให้อัตโนมัติ หากธีมนั้นติดตั้งอยู่ในเครื่อง จึงควรเก็บธีมมาตรฐานรุ่นล่าสุดไว้อย่างน้อย 1 ตัวเสมอ
หาปลั๊กอินต้นเหตุหลังปิดทั้งหมด
เมื่อเข้าหลังบ้านได้แล้ว ให้เปิดปลั๊กอินกลับทีละตัว และตรวจหน้าเว็บหลังเปิดแต่ละตัว ตัวที่เปิดแล้วเว็บพังคือต้นเหตุ ด้วย WP-CLI ทำได้ดังนี้
for p in $(cat ~/active-plugins.txt); do
wp plugin activate "$p" --skip-themes || break
curl -s -o /dev/null -w "$p: %{http_code}\n" https://example.com/wp-login.php
done
หากปลั๊กอินตัวใดทำให้รหัสที่ได้เป็น 500 ให้หยุดและปิดตัวนั้น จากนั้นอัปเดต ย้อนเวอร์ชัน หรือหาปลั๊กอินอื่นแทน
ตรวจสอบผลลัพธ์
- เปิด
https://example.com/wp-admin/ได้และเข้าสู่ระบบได้ตามปกติ - หน้า Plugins แสดงปลั๊กอินต้นเหตุในสถานะ Inactive
- รัน
wp plugin list --status=activeแล้วเทียบกับไฟล์~/active-plugins.txtว่าเปิดตัวที่จำเป็นกลับครบ
ปัญหาที่พบบ่อย
ปิดปลั๊กอินทั้งหมดแล้วยังเข้าหลังบ้านไม่ได้
ต้นเหตุอาจเป็นธีม ปลั๊กอิน Must-Use หรือไฟล์ .htaccess ลองสลับธีม และเปลี่ยนชื่อ .htaccess ชั่วคราว (จากนั้นสร้างใหม่ที่ Settings > Permalinks) ตรวจ Log อีกครั้ง
WP-CLI เองก็ขึ้น Fatal error
ลืมใส่ --skip-plugins --skip-themes หรือต้นเหตุอยู่ใน wp-config.php หรือ mu-plugins ให้ใช้วิธีที่ 2 หรือ 4 แทน
ถูกปลั๊กอินความปลอดภัยล็อกออกเพราะ Login ผิดหลายครั้ง
ปิดปลั๊กอินนั้นด้วยวิธีใดวิธีหนึ่งข้างต้นก็จะปลดล็อกได้ แต่ถ้าถูกบล็อกที่ระดับเซิร์ฟเวอร์ เช่น Fail2Ban บน Plesk ต้องปลดที่นั่น ดู ปลดบล็อก IP ที่ถูก Fail2Ban แบนบน Plesk
หากทำตามขั้นตอนแล้วยังติดปัญหา สามารถติดต่อทีมสนับสนุนของ 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
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


