ตรวจสอบบันทึกเพื่อหาสาเหตุที่ข้อผิดพลาด 500 เกิดขึ้น อาจมีรายการในไฟล์ error.log ที่ระบุสาเหตุของปัญหา พิจารณาตัวเลือกที่พบบ่อยที่สุด
ขาดทรัพยากร
หากเป็นเช่นนี้ ปัญหาได้รับการแก้ไขอย่างง่ายดาย - ติดต่อโฮสต์ ผู้ให้บริการเพื่อขอเพิ่มทรัพยากร
การมีอยู่ของสคริปต์ที่ใช้งานไม่ได้หรือมีเวลาจำกัดในการดำเนินการ
หากเซิร์ฟเวอร์ไม่สามารถประมวลผลสคริปต์ในระยะเวลาหนึ่ง มักจะเกิดข้อผิดพลาดภายใน 500 เซิร์ฟเวอร์ภายในหนึ่งนาที
นอกจากนี้ เว็บมาสเตอร์อาจพบข้อผิดพลาดที่คล้ายกันหากพวกเขาเรียกใช้สคริปต์ CGI จากภายใต้ Apache หากเวลาที่ระบุในการตั้งค่าเซิร์ฟเวอร์ไม่เพียงพอที่จะดำเนินการสคริปต์
หากสคริปต์ทำงานก่อนหน้านี้และเกิดปัญหาขึ้น เช่น เมื่อย้ายไปโฮสต์อื่น ปัญหาอาจเกิดจากสาเหตุอื่น ตัวอย่างเช่น ความจริงที่ว่าเซิร์ฟเวอร์บล็อกคำขอ
เกิดข้อผิดพลาดในการตั้งค่าสิทธิ์การเข้าถึง
สิทธิ์ของไฟล์ต้องเป็น 444 หรือ 644 CHMOD สำหรับโฟลเดอร์ต้องไม่แตกต่างจาก 755 นั่นคือ มีเพียงเจ้าของทรัพยากรเท่านั้นที่สามารถดูได้ ต้องตั้งค่าการอนุญาตของสคริปต์เป็น 600 มิฉะนั้น เซิร์ฟเวอร์จะบล็อกการเข้าถึงสคริปต์ แม้ว่าจะทำงานได้ก็ตาม ด้วยเหตุผลด้านความปลอดภัย
หากนี่คือสาเหตุของข้อผิดพลาด 500 ให้ใช้ตัวจัดการ FTP เพื่อเปลี่ยนการอนุญาต Filezilla ทำงานได้ดีกับฟังก์ชันเหล่านี้
ไฟล์.htaccess มีคำสั่งที่ไม่รองรับ
ตรวจสอบว่ามีไฟล์.htaccess อยู่ที่รูทของไซต์หรือที่อื่น หากมี ให้เปิดด้วยโปรแกรมแก้ไขข้อความใดๆ คุณสามารถใช้ Notepad
ข้อผิดพลาด 500 อาจปรากฏขึ้นหากคุณใช้เซิร์ฟเวอร์ที่ทำงานบน suPHP เช่น รองรับ php.ini หากมีคำสั่งในไฟล์.htaccess ที่เปลี่ยนการตั้งค่าสภาพแวดล้อม PHP ปัญหาอาจเกิดขึ้น คำสั่งที่พบบ่อยที่สุดคือ php_admin_flag, php_flag และ php_value
ตัวแปรส่วนกลางมักถูกรวมเป็นคำสั่ง - Register Globals
ปัญหานี้แก้ไขได้ง่ายมาก - พารามิเตอร์ที่ไม่ต้องการสามารถลบได้ง่ายๆ อีกทางเลือกหนึ่งคือการแสดงความคิดเห็นโดยเพิ่มเครื่องหมายที่จุดเริ่มต้นของบรรทัด ต้องมีช่องว่างระหว่างเครื่องหมายปอนด์และชื่อของคำสั่ง
หากคุณต้องการดำเนินการพารามิเตอร์ที่มีความคิดเห็นจริงๆ คุณสามารถระบุพารามิเตอร์เหล่านี้ได้ในไฟล์ php.ini ในกรณีนี้ คุณไม่จำเป็นต้องใช้ php_admin_flag, php_flag และ php_value - เพียงแค่กำหนดตามหลักการ: "required parameter name=On"
ข้อผิดพลาดร้ายแรง PHP
ปัญหานี้อาจเกิดขึ้นได้หาก PHP ทำงานเหมือน CGI ในกรณีนี้ คุณต้องตรวจสอบรหัสโปรแกรมอย่างละเอียด วินิจฉัยและแก้ไขข้อผิดพลาด โปรดทราบว่าการลงท้ายบรรทัดสคริปต์ CGI ต้องไม่อยู่ในรูปแบบ Windows (r\n) แต่ต้องอยู่ในรูปแบบ UNIX (n)
หากวิธีแก้ไขปัญหาที่แนะนำไม่สามารถแก้ไขข้อผิดพลาดได้ โปรดติดต่อโฮสต์ของคุณ อธิบายรายละเอียดให้เขาฟังว่าข้อผิดพลาด 500 ปรากฏขึ้นเมื่อใดและหลังจากการกระทำใด ขอให้เขาระบุสาเหตุของปัญหาและช่วยในการแก้ไข ในกรณีที่โฮสต์ไม่สามารถทราบสาเหตุที่เกิดข้อผิดพลาด http 500 Internal Server โปรดติดต่อฝ่ายสนับสนุนของ CMS ที่คุณใช้อยู่ อย่าลืมใส่รายละเอียดทั้งหมดในจดหมาย รวมทั้ง - โฮสต์ความคิดเห็นของผู้ให้บริการเกี่ยวกับสถานการณ์ของคุณ