Taking too long? Close loading screen.
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]

ในบทความนี้จะเป็นวิธีการแก้ไขปัญหา 500 Internal Server Error ที่ทำให้ WordPress พังนะครับ บางท่านอาจขึ้นเป็น “500 Internal Server Error” แบบนี้เลย หรือขึ้นว่า “เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ โปรดตรวจสอบคำแนะนำในกล่องข้อความในอีเมลผู้ควบคุมเว็บ” หรือ “There has been a critical error on this website. Please check your site admin email inbox for instructions”

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
ตัวอย่าง Internal Server Error
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
ตัวอย่าง There has been a critical error on this website. ใน WordPress เวอร์ชั่นภาษาอังกฤษ
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
ตัวอย่าง เกิดข้อผิดพลาดร้ายแรงขึ้นบนเว็บนี้ ใน WordPress เวอร์ชั่นภาษาอังกฤษ

แต่ไม่เป็นไรครับ ขึ้นแรกคืออย่าตื่นตระหนก ปัญหานี้แก้ได้ครับ

ปัญหานี้ถ้าเกิดขึ้น แน่นอนครับระบบหลังบ้านหรือ wp-admin เข้าไม่ได้ครับ ทีนี้จะแก้กันด้วยวิธีไหนได้บ้าง ก่อนอื่นต้องมาดูสาเหตุกันก่อนครับ


500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ คืออะไร

500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ เกิดจากหลากหลายสาเหตุครับ เช่น

  • ไฟล์ .htaccess มีปัญหา
  • ไฟล์โค๊ดปลั๊กอินหรือธีมไม่สมบูรณ์หรือติดบั๊ก
  • ตัว WordPress มีปัญหา
  • เซิร์ฟเวอร์โหลดหนักเกินไป
  • PHP Memory Limit ไม่เพียงพอ
    • ปัญหาเกิดขึ้นจากธีม ปลั๊กอิน หรือตัวเวิร์ดเพรสเองทำงานหนักจน PHP Memory ที่ให้มาไม่เพียงพอต่อการประมวลผลครับ เทียบกับบนคอมพิวเตอร์ของเรา เหมือน RAM เต็มและทำงานต่อไม่ได้ครับ จะทำงานต่อได้เมื่อโปรแกรมกินแรมน้อยลงนั่นเอง (PHP Memory ไม่เกี่ยวอะไรกับ RAM ของตัว Server ที่ใช้รันเว็บนะครับ)

แต่ทีนี้ ระบบไม่ได้บอกนะครับว่ามันเกิดจากอะไร มันแค่ขึ้นข้อความ “เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ โปรดตรวจสอบคำแนะนำในกล่องข้อความในอีเมลผู้ควบคุมเว็บ” หรือ “There has been a critical error on this website. Please check your site admin email inbox for instructions” เราจะแก้ปัญหาตรงนี้ยังไงดีครับ?


ก่อนหน้านี้ ได้ทำอะไรไปบ้างไหมครับ?

ลองนึกย้อนกลับไปก่อนเกิดปัญหาครับ ทำอะไรไปในเว็บไซต์บ้าง วิธีนี้จะทำให้การแก้ปัญหาง่ายขึ้นครับ ถ้ารู้ว่าก่อนหน้านี้ได้ทำอะไร เช่น

  • อัพเดท Theme/Plugin/WordPress
  • แก้ไขไฟล์ Theme/Plugin
  • แก้ไขการตั้งค่า Theme/Plugin ในเว็บไซต์
  • ลบไฟล์ในระบบ

หากได้กระทำการใด ๆ ในด้านบน จะสามารถหาต้นตอได้ง่ายครับ ไม่ต้องสุ่มหา


วิธีแก้ 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้

หากได้รับอีเมลจากระบบที่ส่งมา

จะมีเมลส่งไปที่เมลหลักของผู้ดูแลระบบครับ ให้เช็คเมลที่มาจากเว็บไซต์เรา แล้วกดลิ้งค์ที่ยาว ๆ เข้าไปแก้ครับ แก้โดยการเข้าไปปิดธีมหรือปลั๊กอินที่มีปัญหา หรือแก้โค้ดให้กลับเป็นเหมือนเดิมหากเคยแก้อะไรไว้ หรือปรับการตั้งค่า Theme/Plugin ที่มีปัญหาให้กลับไปเป็นสภาพก่อนเกิดปัญหาครับ ส่วนปัญหาเกิดจากอะไรให้ดูที่บรรทัดล่าง ๆ ของเมลครับ ระบบจะแจ้งไว้ เท่านี้ปัญหาน่าจะหายแล้วครับ

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
ตัวอย่างเมลที่ส่งเข้ามา
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
อีเมลที่ระบบจะส่งไป อยู่ที่หน้า Settings -> General หรือตั้งค่า -> ทั่วไป ครับ ในช่อง Administration Email Address

แต่ถ้ายังไม่หาย หรือเมลไม่เข้า แม้แต่ใน Junk/Spam Box…


หากรู้ว่าปัญหาเกิดจาก Theme/Plugin ตัวใดตัวหนึ่ง หรือหลายตัว

หากได้แก้ไขการตั้งค่าหรือไฟล์ Theme/plugin ใด ๆ แล้วขึ้น Error นี้เลย วิธีที่ง่ายที่สุดคือปิดปลั๊กอิน/ธีมทิ้งก่อนครับ (วิธีปิดปลั๊กอินอยู่ในหัวข้อด้านล่างครับ) หากเป็นการแก้ไขให้แก้ไฟล์กลับเป็นเหมือนเดิมก่อนที่จะเป็นปัญหา หรือหากไม่มี backup ให้ลองหาไฟล์ plugin ต้นฉบับหรือเวอร์ชั่นที่เก่ากว่าเข้าทับดูนะครับ

หากไม่รู้ว่าเกิดจากอะไร

หากไม่รู้ว่าเกิดจากอะไร ผมไม่แนะนำให้ไปปิด Plugin/Theme สุ่มสี่สุ่มห้าครับ ทำให้เกิดปัญหาบานปลายได้ครับ โดยที่ WordPress มีฟังค์ชั่นที่เรียกว่า Debug ซึ่งจะทำให้เว็บไซต์แสดงหรือบันทึกข้อผิดพลาดภายในให้เราเห็นได้ครับ และจะได้เข้าแก้ถูกจุด

หากเข้าหลังบ้าน wp-admin ไม่ได้ ให้เตรียมรหัส FTP ครับ หากหาไม่เจอให้ลองทำตามวิธีการหารหัสโฮสติ้ง รหัส FTP ดูนะครับ และลองใช้โปรแกรมเช่น Filezilla เพื่อต่อเข้าโฮสติ้งนะครับ

ถ้าเข้าแล้ว รูปร่างหน้าตาของไฟล์เว็บไซต์จะเป็นดังรูป จะสังเกตว่ามี folder ชื่อว่า wp-admin, wp-content, wp-includes และไฟล์ขึ้นต้นด้วย wp- ทั้งหลายครับ แสดงว่าน่าจะมาถูกที่แล้ว

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
โปรแกรม FileZilla ต่อเข้าระบบโฮสติ้งที่เก็บไฟล์เว็บไซต์แล้ว

หากได้รหัสมาแล้ว สามารถทำตามขั้นตอนต่อไปนี้ได้เลยครับ

  • ขั้นตอนที่ 1: เชื่อมต่อ FTP
  • ขั้นตอนที่ 2: หาไฟล์ที่ชื่อว่า wp-config.php และคลิกขวาและ Edit หรือดาวน์โหลดลงเครื่องมาเพื่อแก้ไขด้วยโปรแกรมเช่น Notepad หรือ Visual Studio ก็ได้ครับ
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
คลิกขวาที่ wp-config.php เพื่อแก้ไข
  • ขั้นตอนที่ 3: เปลี่ยน define( 'WP_DEBUG', false ); จาก false เป็น true ครับ เพื่อเปิดโหมด debug
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
เปลี่ยนช่องนี้ WP_DEBUG จาก false เป็น true
  • ขั้นตอน 4: ใส่โค้ดต่อไปนี้ต่อจากบรรทัด define( 'WP_DEBUG', false ); ได้เลย
define( 'WP_DEBUG_DISPLAY', false );
 // แสดง Debug ในหน้าจอ (จะปรับเป็น true ก็ได้นะครับ แต่ถ้ามีคนเข้าเว็บอยู่ก็จะเห็น Error บานเลยครับ ผมแนะนำให้ปรับเป็น True เฉพาะเว็บที่คนเข้าไม่เยอะหรือยังไม่ได้ Live นะครับ

define( 'WP_DEBUG_LOG', true ); // บันทึก error เป็นไฟล์เพื่ออ่านได้

ถ้าเสร็จแล้วหน้าตาจะออกมาประมาณนี้ครับ

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
ตัวอย่างไฟล์ที่แก้แล้ว

เสร็จแล้วสามารถเซฟได้เลย ถ้าโปรแกรม Filezilla ถามว่าจะอัพโหลดทับไหม ให้คลิก Yes ได้เลยนะครับ หรือหากว่าดาวน์โหลดลงมาที่เครื่องแล้วค่อยอัพขึ้นไป สามารถอัพขึ้นไปทับไฟล์ wp-config ปัจจุบันได้เลยครับ

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
Filezilla จะถามว่าเซฟไฟล์ไหม จะขึ้นก็ต่อเมื่อแก้ไขด้วยการคลิกขวาแล้วกด View/Edit เท่านั้น หากดาวน์โหลดลงมาแล้วอัพขึ้นไปทับก็จะไม่มีขั้นตอนนี้ครับ

เสร็จลองไป refresh ที่หน้าเว็บ 1 ทีเพื่อให้ระบบมันเก็บข้อมูล (แต่หากมีคนเข้าอยู่แล้ว ไม่ต้องก็ได้ครับ) ในโปรแกรม Filezilla แล้วไปที่ wp-content จะเห็นว่าไฟล์ debug.log ครับ ให้คลิกขวาและแก้ไขไฟล์นั้น หรือดาวน์โหลดไฟล์นั้นและเปิดด้วย Notepad ได้เลยตามสะดวก

หมายเหตุ: หากในตัวโค้ด ช่อง 'WP_DEBUG_DISPLAY'เป็น true ตัว error log จะแสดงในหน้าเว็บเลยครับ ไม่ต้องทำตามขั้นตอนนี้

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
ไฟล์ debug.log

ในนี้แหละครับที่จะขึ้นว่า error เพราะอะไร อาจเป็นชื่อ plugin หรือ theme ที่คุ้น ๆ หรืออาจเคยเห็นไฟล์ที่แก้ไขไปแล้วและมีข้อผิดพลาดก็ได้ครับ

แต่หากเกิดจากไฟล์ WordPress ให้ลองดูหัวข้อด้านล่างนะครับ: หากปัญหาเกิดจากไฟล์ WordPress เอง

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
ในเคสนี้ ผมมี Plugin ที่ชื่อ Elementor และใน log มีปัญหา ก็อาจสันนิษฐานได้ครับว่าเกิดจากปลั๊กอิน Elementor ครับ ในไฟล์ log ดังภาพ จะแสดงทั้งหมดครับว่าเกิดขึ้นเวลาไหน ไฟล์ไหน เกิดเพราะอะไร บรรทัดที่เท่าไหร่ หากมีความรู้เรื่องโค้ดสามารถเข้าแก้ไขได้ครับ

หากต้องการปิด เช่นในเคสนี้ Plugin Elementor มีปัญหา ผมจึงไปที่ wp-content/plugins และเปลี่ยนชื่อ Folder elementor เป็น elementor-fix เพื่อปิดปลั๊กอินครับ การที่เปลี่ยนชื่อโฟลเดอร์ Theme/Plugin ใดๆ ไปเป็นชื่ออื่นแม้แต่ตัวอักษรเดียว จะเป็นการปิดปลั๊กอินครับ

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]

และเท่านี้ หากปลั๊กอินนี้ก่อปัญหาจริง เว็บจะสามารถเข้ามาใช้งานได้ครับ

หากแก้แล้วหาย…

การเปิด mode debug จะทำให้ระบบบันทึก error ทั้งหมดที่เกิดขึ้น ซึ่งอาจเปลืองทรัพยากรของเซิร์ฟเวอร์ อาจทำให้เซิร์ฟเวอร์ทำงาหนักขึ้นหรือไฟล์ debug.log มีขนาดใหญ่ขึ้น เมื่อไม่ใช้แล้วควรปิดโดยลบบรรทัด debug ทั้ง 2


ลองทั้งสองวิธีบนแล้ว ก็ยังไม่หาย

ปิด Theme/Plugin ทั้งหมด

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
โฟลเดอร์ plugins และ themes อยู่ใน wp-content
  1. โดยเราจะเปลี่ยนชื่อโฟลเดอร์ plugins และ/หรือ themes เป็นอย่างอื่นครับ (คำแนะนำผมให้ลบตัว s ข้างหลังออกตัวเดียวพอเพื่อกันสับสน)
    • การกระทำนี้เป็นการปิดการใช้งานธีมหรือปลั๊กอินครับ โดยการที่เราเปลี่ยนชื่อโฟลเดอร์ จะทำให้ WordPress หาไฟล์ไม่เจอและปิดการใช้งาน theme/plugins ทั้งหมดโดยอัตโนมัติครับ เป็นการปิดทั้งหมดเลยนั่นเองแล้วมาไล่ดูกันว่าตัวไหนก่อปัญหา
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
เปลี่ยนชื่อ folder plugins และ/หรือ themes
  1. ทีนี้ล็อกอินเข้ามาใน wp-admin แล้ว WordPress จะฟ้องว่าหา theme/plugins ไม่เจอและจะปิดการทำงานของมัน
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
ระบบจะแจ้งว่า plugin หาไม่เจอ
  1. ให้ใช้ ftp เปลี่ยนโฟลเดอร์ที่เราเปลี่ยนชื่อเปลี่ยนกลับเหมือนเดิมครับ เปลี่ยนโฟลเดอร์ธีมกลับเป็น themes และปลั๊กอินเป็น plugins
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
เปลี่ยนชื่อโฟลเดอร์กลับเป็น plugins และ themes
  1. ไล่เปิดการใช้งานธีม หรือปลั๊กอินดูทีละตัวแล้วกลับไปที่หน้าเว็บ แล้วลองกด Refresh หน้าเว็บดู แล้วดูครับว่าเปิดตัวไหน Refresh หน้าเว็บแล้วขึ้น 500 Error ตัวนั้นคือตัวปัญหาครับ ให้จัดการแก้ปัญหาต่อไป อาจลองอัพเกรดไปเวอร์ชั่นใหม่ ลองแก้ไขโค๊ดดูถ้าหากพัฒนาเอง หรือลบทิ้งแล้วหาตัวอื่นมาแทนครับ

หากปัญหาเกิดจากไฟล์ WordPress เอง

  1. ลบโฟลเดอร์ wp-admin และ wp-includes ทิ้ง และไฟล์ที่ขึ้นต้นด้วย wp- ทั้งหมด (ยกเว้นโฟลเดอร์ wp-content และไฟล์ wp-config.php นะครับ)
วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
สำคัญอย่ายุ่งกับ wp-content และไฟล์ wp-config.php
  1. ดาวน์โหลดจาก wordpress.org แตกไฟล์และอัพโหลดไฟล์ทั้งหมด ยกเว้น folder wp-content ระบบจะถามว่าต้องการทับไฟล์ไหม ให้ทับได้เลยครับ

อีกหนึ่งความเป็นไปได้: ปัญหาเกิดจาก .htaccess file

ปัญหานี้อาจลองเริ่มจากการเช็คว่าไฟล์ .htaccess มีปัญหาหรือเปล่านะครับ ใช้ FTP เชื่อมต่อไปที่เว็บของเรา แล้วในโฟลเดอร์ที่ติดตั้ง WordPress เปลี่ยนชื่อไฟล์ .htaccess เป็นอย่างอื่นดูครับ เช่น .htaccess_backup ก็ได้

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
เปลี่ยนชื่อไฟล์ .htaccess

เสร็จแล้วเข้าหลังบ้าน (wp-admin) ไปที่ ตั้งค่า (Settings) -> ลิ้งค์ถาวร (Permalink) ไม่ต้องแก้ไขอะไรแล้วกดบันทึก (Save) เลยครับ ข้อนี้สำคัญนะครับ ไม่งั้นจะเข้าหน้าอื่นๆ นอกจากหน้าแรกไม่ได้เลย

วิธีแก้ปัญหา 500 Internal Server Error / เกิดข้อผิดพลาดร้ายแรงบนเว็บไซต์นี้ ใน WordPress [Update 2022]
วิธีการ Save Permalink หรือลิ้งค์ถาวรแบบง่าย ๆ

หรือถ้ายังไม่หายอีก…

เพิ่ม PHP Memory Limit

อันนี้สำหรับท่านที่ใช้เว็บโฮสติ้งทั่วไปสามารถแจ้งทางผู้ให้บริการเว็บโฮสติ้งให้เพิ่มให้ได้นะครับ แจ้งเขาว่า“ผมต้องการเพิ่ม PHP Memory Limit หน่อยครับ เนื่องจากเว็บติด 500 Error เพราะ Memory Limit ไม่พอหลายครั้ง…”

แต่จะเพิ่มได้เท่าไหร่นั้นขึ้นกับนโยบายของผู้ให้บริการเว็บโฮสติ้งนะครับ บางเจ้าให้มาค่าเริ่มต้นเพียง 64MB ซึ่งบางทีไม่พอต่อการใช้งาน สามารถขอเขาเพิ่มให้เป็น 128MB, 256MB หรือถ้าโฮสไหนใจดีหน่อยให้ 512MB (ส่วนใหญ่ไม่มีหรอกครับ มากที่สุดเท่าที่เคยเจออยู่ที่ 256MB) เท่านี้ก็ไม่น่าติดปัญหาอะไรอีกแล้วครับ

แต่ถ้ามี Server เป็นของตัวเอง หรือเช่า VPS ผู้ใช้งานอาจต้องเพิ่มเองครับ โดยแก้ไฟล์ php.ini หา

php_memory_limit 

แล้วแก้เอาได้ครับ

แต่ถ้ายังไม่หายอีก… มาหาเราได้เลยครับ MAKE2WEB ยินดีให้บริการ แก้ปัญหาเว็บไซต์

วิธีป้องกันไม่ให้เกิดขึ้นอีก

ปกติแล้วปัญหานี้เป็นแล้วไม่ค่อยเป็นอีกครับ ยกเว้นมีการแก้ไขไฟล์ธีมหรือปลั๊กอิน ถ้าจัดการปิดหรือแก้ไขธีม/ปลั๊กอิน/สคริปต์ WordPress/PHP Memory Limit ที่เป็นปัญหาแล้ว ถ้าเป็นอีกให้ลองอ่านไฟล์ Log ดูเลยครับว่าเป็นเพราะอะไรอีก อาจเกิดจากปลั๊กอินหรือธีมที่ใช้มีปัญหาจากทางทีมพัฒนา หรือโค้ดที่รันอยู่ทำงานไม่ถูกต้องก็ได้ครับ