เปลี่ยนเวอร์ชัน PHP แล้ว Joomla พัง แก้อย่างไร? เช็กความเข้ากันได้ทีละจุด

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

❶ จดเวอร์ชัน PHP และ Joomla ที่ใช้อยู่

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

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

❷ ตรวจว่า PHP รองรับ Joomla รุ่นนั้นหรือไม่

เวอร์ชัน Joomla แต่ละรุ่นรองรับ PHP ไม่เหมือนกัน ตัวอย่างตามเอกสาร Joomla ปัจจุบัน:

  • Joomla 5.x ต้องใช้ PHP อย่างน้อย 8.1 และแนะนำ 8.3
  • Joomla 6.x รองรับ PHP ตั้งแต่ 8.3 และแนะนำ 8.4

หากใช้ Joomla รุ่นอื่น ให้ตรวจตารางข้อกำหนดของรุ่นนั้นโดยตรง อย่าใช้ตัวเลขจาก Joomla รุ่นใหม่ไปตัดสินเว็บที่ยังใช้รุ่นเก่า

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

❸ เปลี่ยนกลับเป็นเวอร์ชันที่เข้ากันได้เพื่อกู้การเข้าถึง

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

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

❹ ตรวจส่วนเสริม เทมเพลต และโค้ดที่ปรับแต่ง

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

① ตรวจจากผู้พัฒนาว่าส่วนเสริมรองรับ PHP และ Joomla รุ่นใด

② อัปเดตส่วนเสริมหรือเทมเพลตที่มีเวอร์ชันแก้ไข หลังสำรองเว็บไซต์แล้ว

③ หากเป็นโค้ดที่แก้เอง ให้ผู้พัฒนาตรวจข้อความ PHP Warning หรือ Fatal Error และปรับโค้ดให้เข้ากับเวอร์ชันใหม่

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

❺ ตรวจ Error Log และทรัพยากรของเซิร์ฟเวอร์

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

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

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

❻ ทดสอบก่อนใช้ PHP เวอร์ชันใหม่บนเว็บไซต์จริง

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

ทดสอบหน้าแรก หน้าแอดมิน บทความ แบบฟอร์ม ระบบค้นหา และส่วนเสริมสำคัญ แล้วตรวจ Error Log ซ้ำ หากดูแลเว็บไซต์ร่วมกับทีม เช่น ComSiam ให้จดเวอร์ชัน PHP ที่ทดสอบและผลของแต่ละเวอร์ชันไว้

สรุป

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