WordPress Internal Server Error คืออะไร?
Internal Server Error (ISE) หรือข้อผิดพลาดเซิร์ฟเวอร์ภายใน เป็นหนึ่งในข้อผิดพลาดที่พบบ่อยและสร้างความหงุดหงิดให้กับผู้ใช้งาน WordPress โครตๆ
ข้อผิดพลาดนี้ไม่ได้ระบุสาเหตุที่ชัดเจนเหมือนข้อผิดพลาดอื่นๆ เช่น “ไม่พบหน้า” หรือ “ฐานข้อมูลเชื่อมต่อไม่ได้” แต่จะแสดงเพียงข้อความทั่วไปว่า “Internal Server Error” ซึ่งหมายความว่ามีบางอย่างผิดปกติเกิดขึ้นกับเซิร์ฟเวอร์ที่โฮสต์เว็บไซต์ WordPress ของคุณ..แล้วละ
สาเหตุหลักๆ ของ Internal Server Error มักเกี่ยวข้องกับ:
- ไฟล์ .htaccess เสียหาย: ไฟล์นี้ทำหน้าที่กำหนดค่าการทำงานของเซิร์ฟเวอร์ และเป็นสาเหตุที่พบบ่อยที่สุดของ ISE
- หน่วยความจำ PHP ไม่เพียงพอ: WordPress และปลั๊กอิน/ธีมบางตัวอาจต้องการหน่วยความจำ (RAM) มากกว่าที่เซิร์ฟเวอร์จัดสรรให้
- ปลั๊กอินหรือธีมที่ขัดแย้งกัน: อันนี้เจอบ่อยสุด ปลั๊กอินหรือธีมบางตัวอาจไม่เข้ากัน หรือมีโค้ดที่ผิดพลาด ทำให้เกิดข้อผิดพลาด ถ้าใครลง plugin ไว้เยอะๆ นี่เซ็งเป็ดเลย 55 ต้องไล่เช็คที่ละ plugin
- ไฟล์ WordPress หลักเสียหาย: ไฟล์หลักของ WordPress บางไฟล์อาจเสียหายจากการอัปโหลดไม่สมบูรณ์ หรือปัญหาอื่นๆ
- สิทธิ์ของไฟล์ (File Permissions) ไม่ถูกต้อง: สิทธิ์ในการเข้าถึงและแก้ไขไฟล์บนเซิร์ฟเวอร์ไม่ถูกต้อง อาจทำให้เซิร์ฟเวอร์ไม่สามารถทำงานได้ตามปกติ
วิธีแก้ไข Internal Server Error ใน WordPress
การแก้ไข Internal Server Error ต้องอาศัยการลองผิดลองถูกบ้าง เนื่องจากสาเหตุไม่เฉพาะเจาะจง แต่สามารถทำตามขั้นตอนเหล่านี้ได้:
1. ตรวจสอบไฟล์ .htaccess
นี่คือจุดเริ่มต้นที่ดีที่สุดครับ:
- เชื่อมต่อเว็บไซต์ด้วย FTP หรือ File Manager: ใช้โปรแกรม FTP Client (เช่น FileZilla) หรือ File Manager ใน cPanel/DirectAdmin เพื่อเข้าถึงไฟล์บนโฮสติ้ง
- ค้นหาไฟล์
.htaccess
: ไฟล์นี้จะอยู่ในไดเรกทอรีหลักของ WordPress (มักจะเป็นpublic_html
หรือwww
) - เปลี่ยนชื่อไฟล์
.htaccess
เดิม: เปลี่ยนชื่อไฟล์.htaccess
เป็นอย่างอื่น เช่น.htaccess_old
การทำเช่นนี้จะทำให้ WordPress ไม่สามารถใช้ไฟล์.htaccess
เดิมได้ - ทดสอบเว็บไซต์: ลองเข้าเว็บไซต์ของอีกครั้ง หากเว็บไซต์กลับมาใช้งานได้ปกติ แสดงว่าไฟล์
.htaccess
เดิมเสียหาย - สร้างไฟล์
.htaccess
ใหม่: เข้าสู่ระบบ WordPress Dashboard ไปที่ การตั้งค่า (Settings) > ลิงก์ถาวร (Permalinks) โดยไม่ต้องเปลี่ยนแปลงอะไร ให้คลิกที่ปุ่ม บันทึกการเปลี่ยนแปลง (Save Changes) นี่จะสร้างไฟล์.htaccess
ใหม่ขึ้นมาโดยอัตโนมัติ
2. เพิ่มหน่วยความจำ PHP (PHP Memory Limit)
หากวิธีแรกไม่ได้ผล ลองเพิ่มหน่วยความจำ PHP:
- ค้นหาไฟล์
wp-config.php
: ไฟล์นี้อยู่ในไดเรกทอรีหลักของ WordPress เช่นเดียวกับไฟล์.htaccess
- แก้ไขไฟล์
wp-config.php
: เปิดไฟล์wp-config.php
ด้วย Text Editor และเพิ่มบรรทัดโค้ดนี้ก่อนบรรทัด/* That's all, stop editing! Happy blogging. */
หรือบรรทัดสุดท้ายของการตั้งค่าอื่นๆ:define('WP_MEMORY_LIMIT', '256M');
สามารถลองค่าอื่นได้ เช่น128M
หรือ512M
หาก 256M ยังไม่เพียงพอ - บันทึกและทดสอบ: บันทึกไฟล์และลองเข้าเว็บไซต์อีกครั้ง
3. ปิดการใช้งานปลั๊กอินทั้งหมด (ตรงนี้พบบ่อยที่สุด)
ปลั๊กอินที่เข้ากันไม่ได้หรือไม่สมบูรณ์มักเป็นสาเหตุของ ISE:
- ผ่าน FTP/File Manager: ไปที่ไดเรกทอรี
wp-content/plugins
- เปลี่ยนชื่อโฟลเดอร์
plugins
: เปลี่ยนชื่อโฟลเดอร์plugins
เป็นอย่างอื่น เช่นplugins_old
การทำเช่นนี้จะปิดการใช้งานปลั๊กอินทั้งหมด - ทดสอบเว็บไซต์: หากเว็บไซต์กลับมาใช้งานได้ปกติ แสดงว่ามีปลั๊กอินตัวใดตัวหนึ่งเป็นต้นเหตุ
- ค้นหาปลั๊กอินที่เป็นปัญหา: เปลี่ยนชื่อโฟลเดอร์
plugins_old
กลับเป็นplugins
จากนั้นเข้าไปในโฟลเดอร์plugins
และเปลี่ยนชื่อโฟลเดอร์ของปลั๊กอินทีละตัว (เช่น เปลี่ยนชื่อplugin_name
เป็นplugin_name_old
) พร้อมกับทดสอบเว็บไซต์ไปเรื่อยๆ จนกว่าจะพบปลั๊กอินที่ทำให้เกิดปัญหา เมื่อเจอแล้วให้ลบปลั๊กอินนั้นทิ้ง หรือหาปลั๊กอินอื่นมาทดแทน
4. สลับไปใช้ธีมเริ่มต้นของ WordPress
คล้ายกับการปิดปลั๊กอิน ธีมบางตัวอาจทำให้เกิดปัญหา:
- ผ่าน FTP/File Manager: ไปที่ไดเรกทอรี
wp-content/themes
- เปลี่ยนชื่อโฟลเดอร์ธีมที่ใช้งานอยู่: เปลี่ยนชื่อโฟลเดอร์ของธีมที่กำลังใช้งานอยู่ (ยกเว้นธีมเริ่มต้นของ WordPress เช่น
twentytwentyfour
หรือtwentytwentythree
) การทำเช่นนี้จะบังคับให้ WordPress สลับไปใช้ธีมเริ่มต้น - ทดสอบเว็บไซต์: หากเว็บไซต์กลับมาใช้งานได้ปกติ แสดงว่าธีมที่เคยใช้เป็นปัญหา อาจต้องอัปเดตธีม หรือเลือกใช้ธีมอื่น
5. ตรวจสอบเวอร์ชัน PHP
บางครั้ง WordPress หรือปลั๊กอิน/ธีมที่ใช้ อาจไม่รองรับเวอร์ชัน PHP ที่รันอยู่บนเซิร์ฟเวอร์:
- ติดต่อผู้ให้บริการโฮสติ้ง: สอบถามผู้ให้บริการโฮสติ้งว่า เว็บไซต์รันบน PHP เวอร์ชันไหน และสามารถเปลี่ยนเวอร์ชัน PHP ได้มั๊ย
- อัปเดต PHP: หากเวอร์ชัน PHP เก่าเกินไป (ต่ำกว่า 7.4) การอัปเดตเป็นเวอร์ชันที่ใหม่กว่าและเสถียรขึ้น อาจช่วยแก้ปัญหานี้ได้
6. อัปโหลดไฟล์ WordPress Core ใหม่
หากไฟล์ WordPress หลักบางส่วนเสียหาย การอัปโหลดไฟล์ใหม่จะช่วยได้:
- ดาวน์โหลด WordPress เวอร์ชันล่าสุด: ไปที่ th.wordpress.org และดาวน์โหลด WordPress เวอร์ชันล่าสุด
- แตกไฟล์: แตกไฟล์ .zip ที่ดาวน์โหลดมา
- เชื่อมต่อด้วย FTP/File Manager: อัปโหลดโฟลเดอร์
wp-admin
และwp-includes
ไปยังไดเรกทอรีหลักของ WordPress - ยืนยันการเขียนทับ: โปรแกรม FTP จะถามว่าต้องการเขียนทับไฟล์ที่มีอยู่หรือไม่ ให้เลือก “Yes” หรือ “Overwrite”
- ข้อควรระวัง: ไม่ควรอัปโหลดโฟลเดอร์
wp-content
เพราะจะไปเขียนทับปลั๊กอิน ธีม และรูปภาพที่เคยอัปไปแล้ว
- ข้อควรระวัง: ไม่ควรอัปโหลดโฟลเดอร์
7. ตรวจสอบสิทธิ์ของไฟล์ (File Permissions)
สิทธิ์ของไฟล์ที่ไม่ถูกต้องอาจทำให้เซิร์ฟเวอร์ไม่สามารถเข้าถึงไฟล์บางไฟล์ได้:
- ไดเรกทอรี: ควรกำหนดเป็น 755
- ไฟล์: ควรกำหนดเป็น 644
- แก้ไขผ่าน FTP Client: ในโปรแกรม FTP Client สามารถคลิกขวาที่ไฟล์หรือโฟลเดอร์ แล้วเลือก “File permissions” หรือ “Change permissions” เพื่อกำหนดค่าได้
- ข้อควรระวัง: หากไม่แน่ใจหรือไม่เคยทำมาก่อน ควรปรึกษาผู้ให้บริการโฮสติ้งก่อนดำเนินการขั้นตอนนี้
8. ติดต่อผู้ให้บริการโฮสติ้ง
หากลองทุกวิธีข้างต้นแล้วยังไม่ได้ผล Internal Server Error อาจเกิดจากปัญหาที่ฝั่งเซิร์ฟเวอร์เอง:
- ให้ข้อมูลที่ละเอียด: อธิบายขั้นตอนที่ได้ลองทำไปแล้ว และบอกว่าเมื่อไหร่ที่ปัญหาเกิดขึ้น
- ตรวจสอบบันทึกข้อผิดพลาด (Error Logs): ผู้ให้บริการโฮสติ้งสามารถเข้าถึง Error Logs ของเซิร์ฟเวอร์ ซึ่งจะบอกรายละเอียดของข้อผิดพลาดที่เกิดขึ้นได้
หวังว่าจะช่วยแก้ไขปัญหา Internal Server Error บน WordPress ได้นะครับ! อาจจะต้องใช้ความอดทนเล็กน้อย..แทบกระอักเลือดในบางเคส 55 แต่ถ้าค่อยๆ ทำตามขั้นตอนไปเรื่อยๆ ก็น่าจะทำให้เว็บไซต์ที่เอ๋ออยู่ กลับมาใช้งานได้อีกครั้ง