Joomla แจ้ง PHP Fatal Error ต้องทำอย่างไร? วิธีหาสาเหตุและกู้เว็บไซต์

PHP Fatal Error คือข้อผิดพลาดร้ายแรงที่ทำให้ PHP หยุดประมวลผลหน้าเว็บ Joomla จึงอาจเห็นหน้า Error หน้าเปล่า หรือเข้าแอดมินไม่ได้ สาเหตุที่พบบ่อย ได้แก่ ส่วนเสริมไม่เข้ากัน ไฟล์ไม่ครบ เวอร์ชัน PHP ไม่รองรับ หรือเซิร์ฟเวอร์มีทรัพยากรไม่พอ

ก่อนแก้ไข ให้สำรองไฟล์และฐานข้อมูล แล้วหาข้อความผิดพลาดฉบับเต็มเพื่อระบุจุดที่เกิดปัญหา

❶ เก็บข้อความผิดพลาดและเวลาที่เกิด

เปิด Error Log จากแผงควบคุมโฮสติ้ง แล้วหา PHP Fatal Error ที่เกิดในช่วงเวลาเดียวกับที่หน้าเว็บมีปัญหา จดข้อมูลเหล่านี้ไว้:

  • ข้อความผิดพลาดและชื่อคลาสหรือฟังก์ชันที่ระบุ
  • พาธไฟล์และหมายเลขบรรทัด
  • URL ที่เกิดปัญหา
  • เวลาที่พบข้อผิดพลาด
  • ส่วนเสริม การอัปเดต หรือการเปลี่ยนแปลงล่าสุด

หากหน้าเว็บแสดง Stack Trace ให้บันทึกไว้ แต่ปิดบังชื่อผู้ใช้ พาธที่อ่อนไหว หรือข้อมูลลับก่อนส่งให้ผู้ดูแล

❷ เปิด Debug ชั่วคราวเมื่อยังเข้าแอดมินได้

หากยังเข้าแอดมิน Joomla ได้ ให้ไปที่ System → Global Configuration แล้วเปิด Debug System ในแท็บ System และตั้ง Error Reporting เป็น Maximum ในแท็บ Server จากนั้นบันทึกแล้วเปิดหน้าที่พบปัญหาอีกครั้ง

รายละเอียดหรือ Stack Trace อาจแสดงไฟล์และส่วนเสริมที่ทำให้เกิดข้อผิดพลาด เมื่อเก็บข้อมูลเสร็จแล้วให้ปิด Debug และคืนค่า Error Reporting ตามเดิม เพราะรายละเอียดทางเทคนิคไม่ควรแสดงต่อผู้เข้าชมเว็บไซต์ทั่วไป

❸ ตรวจส่วนเสริมที่เพิ่งติดตั้งหรืออัปเดต

หาก Fatal Error เริ่มหลังติดตั้งหรืออัปเดตส่วนเสริม ให้ดูว่าข้อความผิดพลาดอ้างถึงไฟล์ในโฟลเดอร์ส่วนเสริมหรือไม่

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

② ตรวจว่าเวอร์ชันของส่วนเสริมรองรับเวอร์ชัน Joomla และ PHP ที่ใช้อยู่

③ หากการอัปเดตอาจส่งไฟล์ขึ้นไม่ครบ ให้สำรองข้อมูลก่อนติดตั้งแพ็กเกจส่วนเสริมที่ถูกต้องใหม่ตามคำแนะนำของผู้พัฒนา

หากเข้าแอดมินไม่ได้ อย่าลบโฟลเดอร์หรือปิดปลั๊กอินหลายรายการแบบสุ่ม ให้ใช้ Error Log ระบุส่วนเสริมก่อน แล้วให้ผู้ดูแลระบบช่วยปิดเฉพาะรายการที่เกี่ยวข้อง

❹ ตรวจเวอร์ชัน PHP และทรัพยากรเซิร์ฟเวอร์

หากข้อผิดพลาดเริ่มหลังเปลี่ยนเวอร์ชัน PHP ให้ตรวจว่าเวอร์ชัน PHP ที่โฮสติ้งใช้อยู่รองรับ Joomla และส่วนเสริมของเว็บไซต์หรือไม่ หากไม่แน่ใจ ให้ขอให้โฮสติ้งตรวจความเข้ากันได้ก่อนเปลี่ยนเวอร์ชันอีกครั้ง

หาก Error Log ระบุว่าใช้หน่วยความจำเกิน หรือสคริปต์ทำงานนานเกินกำหนด ให้ส่งข้อความผิดพลาดและเวลาที่เกิดไปยังผู้ให้บริการโฮสติ้ง เพื่อให้ตรวจทรัพยากรและค่าจำกัดของแพ็กเกจ อย่าเพิ่มค่าระบบโดยไม่ทราบข้อจำกัดของเซิร์ฟเวอร์

❺ กรณีเข้าแอดมินไม่ได้ ให้ตรวจผ่านโฮสติ้ง

หากทั้งหน้าเว็บและแอดมินใช้งานไม่ได้ ให้ตรวจ Error Log ของโฮสติ้งเป็นหลัก โดยเฉพาะไฟล์และบรรทัดที่ปรากฏในข้อความ Fatal Error

หากต้องแก้ configuration.php เพื่อเปิดรายละเอียดข้อผิดพลาด ให้ดาวน์โหลดไฟล์เดิมเก็บไว้ก่อน และทำตามวิธีที่ตรงกับเวอร์ชัน Joomla หากไม่คุ้นเคยกับการแก้ไฟล์ ให้โฮสติ้งหรือผู้ดูแล Joomla ดำเนินการแทน เมื่อวิเคราะห์เสร็จควรปิด Debug และคืนค่าความปลอดภัยของไฟล์

❻ กู้เว็บไซต์เมื่อการเปลี่ยนแปลงทำให้เว็บเสีย

หากพบว่าปัญหาเกิดหลังอัปเดตหรือแก้ไฟล์ และไม่สามารถย้อนการเปลี่ยนแปลงอย่างปลอดภัยได้ ให้พิจารณากู้คืนจากข้อมูลสำรองที่สมบูรณ์ ทั้งไฟล์และฐานข้อมูลของช่วงเวลาเดียวกัน

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

สรุป

เมื่อ Joomla แจ้ง PHP Fatal Error ให้สำรองข้อมูลและตรวจข้อความใน Error Log เพื่อหาไฟล์หรือส่วนเสริมที่เป็นต้นเหตุ หากยังเข้าแอดมินได้ ให้เปิด Debug ชั่วคราวเพื่อดูรายละเอียด แล้วปิดกลับหลังตรวจเสร็จ ตรวจความเข้ากันได้ของส่วนเสริม PHP และทรัพยากรโฮสติ้ง หากจำเป็นต้องกู้เว็บไซต์ ให้ใช้ไฟล์และฐานข้อมูลสำรองที่ตรงช่วงเวลา