WordPress = CMS ยอดนิยม แต่ไม่ปราศจากปัญหา สาเหตุอาจเป็น Server setup ผิด, URL ปัญหา หรือฝ่ายคุณ
Error ส่วนใหญ่บอกสาเหตุชัด (404, 503) แต่ 500 Internal Server Error ไม่ชัดเจน เพราะ Server หงุดหงิด หาสาเหตุจริงไม่ได้ ไม่รู้แก้ไง นี่คือวิธีแก้
500 Internal Server Error คืออะไร?
มันไม่ "เจาะจง" ไม่มีรายละเอียดผิดอะไร Server สับสน หาสาเหตุไม่ได้ -> ยากที่จะแก้
แต่จากประสบการณ์ สาเหตุส่วนใหญ่มาจาก:
- ปัญหาไฟล์ .htaccess
- PHP Memory Limit ต่ำเกินไป
- Theme ปัญหา
- Plugin ปัญหา
ไม่ว่าจะ Error แค่ Backend (WpAdmin) หรือทั้งไซต์ วิธีแก้เหมือนกัน
เช็คและแก้ไขปัญหา Plugin
Plugin = โค้ดภายนอก ไม่เสมอไปเสถียร/สะอาด อาจก่อให้เกิด Server Error
1. ปิด Plugin ทั้งหมด เช็คไซต์ ถ้า Backend ใช้ได้ แค่หน้าเว็บมีปัญหา -> ล็อกอิน Admin ปิด Plugin ได้เลย
2. เข้า Admin ไม่ได้? -> เข้า Host (cPanel) หรือ FTP > ไป wp-content > plugins > Rename โฟลเดอร์ "plugins" เป็นอย่างอื่น (เช่น "checking-plugins") -> Plugin ทั้งหมดปิดอัตโนมัติ
3. ถ้าเว็บกลับมาใช้งานได้ = ปัญหาจาก Plugin -> ล็อกอิน Admin เปิด Plugin ทีละตัว จนกว่า Error จะกลับมา -> ตัวสุดท้ายที่เปิด = ตัว виновник
4. ถ้าปิด Plugin แล้วไม่หาย = ปัญหาไม่ใช่ Plugin -> Rename กลับ "plugins" หรือเปิดทั้งหมด แล้วไปวิธีต่อไป
แก้ปัญหา PHP Memory Limit
เหมือนคอมพิวเตอร์ต้อง RAM รันโปรแกรม WordPress ต้อง Memory ถ้าน้อยกว่าที่ต้อง = Error
แก้ง่าย: เปิด wp-config.php (ในโฟลเดอร์ที่ติดตั้ง WordPress) ใส่บรรทัดนี้ก่อนบรรทัดสุดท้าย:
define( 'WP_MEMORY_LIMIT', '256M' );
Save > Refresh เว็บ ถ้าดีใจก็หาย
ปัญหา Theme
Theme เหมือน Plugin ก่อให้เกิด Error แต่ต่างตรงที่: ใช้ Theme เดียวต่อรอบ -> อาจเป็น Theme ที่ใช้อยู่ หรือไม่
ทดสอบง่าย: ปิด Theme ใช้ Theme อื่น ถ้าหาย = Theme เก่ามีปัญหา -> ใช้ Theme ใหม่ หรือติดต่อผู้ให้ Theme แก้
ถ้าใช้ Child Theme -> ลองลบ Child Theme ตั้ง Permalinks เป็น "Postname" บางคนแก้ได้
แก้ไข .htaccess
.htaccess = ไฟล์เล็กแต่สำคัญมาก อยู่โฟลเดอร์ WordPress เข้าถึงได้ผ่าน cPanel/FTP
Rename .htaccess เป็น .htaccess_error (ไฟล์เดิมหยุดทำงาน) > Refresh เว็บ ถ้าโหลดได้ = .htaccess เป็นสาเหตุ
แต่ยังต้อง .htaccess ใหม่ -> ไป WpAdmin > Settings > Permalinks > กด Save (ไม่ต้องเปลี่ยนอะไร) -> ระบบสร้าง .htaccess ใหม่ให้อัตโนมัติ เสร็จ!
สรุป
นี่คือตัวเลือกแก้ 500 Error ทั้งหมดที่คุณต้องการ แม้มีโพสต์ละเอียดกว่านี้บน 000Webhost ถ้ายังไม่หาย คอมเมนต์บอกมา จะช่วยต่อได้