วิธีแก้ไขข้อผิดพลาด 500 Internal Server บนไซต์ WordPress ของคุณ
เผยแพร่แล้ว: 2017-12-25ข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 อันน่าสะพรึงกลัว ดูเหมือนว่ามาในเวลาที่ไม่เหมาะสมที่สุดเสมอ และจู่ๆ คุณก็ต้องดิ้นรนเพื่อหาวิธีทำให้ไซต์ WordPress ของคุณกลับมาออนไลน์อีกครั้ง เชื่อเรา เราเคยไปมาแล้ว ข้อผิดพลาดอื่น ๆ ที่มีลักษณะคล้ายคลึงกันที่คุณอาจเคยเห็น ได้แก่ ข้อผิดพลาดที่น่ากลัวในการสร้างการเชื่อมต่อฐานข้อมูลและหน้าจอสีขาวอันน่าสยดสยอง แต่ทันทีที่ไซต์ของคุณล่ม คุณกำลังสูญเสียผู้เข้าชมและลูกค้า ไม่ต้องพูดถึงว่ามันดูไม่ดีสำหรับแบรนด์ของคุณ
วันนี้เราจะมาเจาะลึกถึงข้อผิดพลาดของเซิร์ฟเวอร์ภายใน 500 ข้อและแนะนำวิธีการบางอย่างในการทำให้ไซต์ของคุณกลับมาออนไลน์ได้อย่างรวดเร็ว อ่านเพิ่มเติมด้านล่างเกี่ยวกับสาเหตุของข้อผิดพลาดนี้และสิ่งที่คุณทำได้เพื่อป้องกันในอนาคต
- ข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 คืออะไร
- วิธีแก้ไขข้อผิดพลาด 500 เซิร์ฟเวอร์ภายใน
500 ข้อผิดพลาดเซิร์ฟเวอร์ภายใน (สาเหตุส่วนใหญ่):
500 Internal server error ใน WordPress เกิดได้จากหลายสาเหตุ หากคุณกำลังประสบปัญหาดังกล่าว มีโอกาสสูงที่องค์ประกอบต่อไปนี้หนึ่งรายการ (หรือมากกว่า) ที่ทำให้เกิดปัญหา:
- แคชของเบราว์เซอร์
- ข้อมูลรับรองการเข้าสู่ระบบฐานข้อมูลไม่ถูกต้อง
- ฐานข้อมูลเสียหาย
- ไฟล์ที่เสียหายในการติดตั้ง WordPress ของคุณ
- ปัญหาเกี่ยวกับเซิร์ฟเวอร์ฐานข้อมูลของคุณ
- ไฟล์หลักของ WordPress เสียหาย
- ไฟล์ .htaccess เสียหายและขีดจำกัดหน่วยความจำ PHP
- ปัญหาเกี่ยวกับปลั๊กอินและธีมของบุคคลที่สาม
- PHP หมดเวลาหรือข้อผิดพลาด PHP ร้ายแรงกับปลั๊กอินของบุคคลที่สาม
- สิทธิ์ของไฟล์และโฟลเดอร์ไม่ถูกต้อง
- ขีดจำกัดหน่วยความจำ PHP บนเซิร์ฟเวอร์ของคุณหมดแล้ว
- ไฟล์ .htaccess เสียหายหรือเสียหาย
- ข้อผิดพลาดในสคริปต์ CGI และ Perl
ดูคำแนะนำขั้นสูงสุดของเราในการแก้ไขข้อผิดพลาด 500 Internal Server
ข้อผิดพลาด 500 Internal Server คืออะไร?
Internet Engineering Task Force (IETF) กำหนด 500 Internal Server Error เป็น:
รหัสสถานะ 500 (Internal Server Error) บ่งชี้ว่าเซิร์ฟเวอร์พบเงื่อนไขที่ไม่คาดคิดซึ่งทำให้ไม่สามารถดำเนินการตามคำขอได้
เมื่อคุณเยี่ยมชมเว็บไซต์ เบราว์เซอร์ของคุณจะส่งคำขอไปยังเซิร์ฟเวอร์ที่โฮสต์เว็บไซต์นั้น เซิร์ฟเวอร์รับคำขอนี้ ประมวลผล และส่งทรัพยากรที่ร้องขอกลับ (PHP, HTML, CSS ฯลฯ) พร้อมกับส่วนหัว HTTP HTTP ยังรวมสิ่งที่พวกเขาเรียกว่ารหัสสถานะ HTTP รหัสสถานะเป็นวิธีแจ้งให้คุณทราบเกี่ยวกับสถานะของคำขอ อาจเป็นรหัสสถานะ 200 ซึ่งหมายถึง "ทุกอย่างเรียบร้อย" หรือรหัสสถานะ 500 ซึ่งหมายความว่ามีบางอย่างผิดพลาด
รหัสข้อผิดพลาดสถานะ 500 รายการมีหลายประเภท (500, 501, 502, 503, 504 เป็นต้น) ซึ่งล้วนมีความหมายที่แตกต่างกัน ในกรณีนี้ ข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 ข้อบ่งชี้ว่า เซิร์ฟเวอร์พบเงื่อนไขที่ไม่คาดคิดซึ่งทำให้ไม่สามารถดำเนินการตามคำขอได้ (RFC 7231 ส่วน 6.6.1)

500 รูปแบบข้อผิดพลาดเซิร์ฟเวอร์ภายใน
เนื่องจากเว็บเซิร์ฟเวอร์ ระบบปฏิบัติการ และเบราว์เซอร์ต่างๆ ข้อผิดพลาด 500 เซิร์ฟเวอร์ภายในสามารถแสดงตัวเองได้หลายวิธี แต่พวกเขาทั้งหมดสื่อสารในสิ่งเดียวกัน ด้านล่างนี้เป็นเพียงรูปแบบต่างๆ สองสามรูปแบบที่คุณอาจเห็นบนเว็บ:
- "500 ข้อผิดพลาดภายในเซิร์ฟเวอร์"
- “HTTP 500”
- “ข้อผิดพลาดภายในเซิร์ฟเวอร์”
- “HTTP 500 – ข้อผิดพลาดเซิร์ฟเวอร์ภายใน”
- “500 ข้อผิดพลาด”
- “ข้อผิดพลาด HTTP 500”
- "500 ข้อผิดพลาดภายในเซิร์ฟเวอร์"
- "500 ข้อผิดพลาดภายในเซิร์ฟเวอร์. ขอโทษมีบางอย่างผิดพลาด."
- “500. นั่นเป็นข้อผิดพลาด เกิดข้อผิดพลาด โปรดลองอีกครั้งในภายหลัง. นั่นคือทั้งหมดที่เรารู้."
- “เว็บไซต์ไม่สามารถแสดงหน้าได้ – HTTP 500”
- “ขณะนี้ไม่สามารถจัดการกับคำขอนี้ได้ ข้อผิดพลาด HTTP 500”
คุณอาจเห็นข้อความนี้ประกอบด้วย:
เซิร์ฟเวอร์พบข้อผิดพลาดภายในหรือการกำหนดค่าผิดพลาด และไม่สามารถดำเนินการตามคำขอของคุณได้ โปรดติดต่อผู้ดูแลระบบเซิร์ฟเวอร์ [ป้องกันอีเมล] และแจ้งเวลาที่เกิดข้อผิดพลาด และสิ่งใดก็ตามที่คุณอาจทำซึ่งอาจทำให้เกิดข้อผิดพลาด ข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดนี้อาจอยู่ในบันทึกข้อผิดพลาดของเซิร์ฟเวอร์

ในบางครั้ง คุณอาจเห็นหน้าจอว่างเปล่าสีขาว เมื่อต้องจัดการกับข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 รายการ เป็นเรื่องปกติในเบราว์เซอร์อย่าง Firefox และ Safari

แบรนด์ใหญ่อาจมีข้อความแสดงข้อผิดพลาดเซิร์ฟเวอร์ภายในของตัวเองถึง 500 ข้อความ เช่น ข้อความนี้จาก Airbnb

นี่เป็นอีกตัวอย่างข้อผิดพลาดของเซิร์ฟเวอร์ Creative 500 จากผู้ใช้ที่ readme

แม้แต่ YouTube ที่ยิ่งใหญ่ก็ไม่ปลอดภัยจากข้อผิดพลาดภายในเซิร์ฟเวอร์ 500 รายการ

หากเป็นเซิร์ฟเวอร์ IIS 7.0 (Windows) หรือสูงกว่า เซิร์ฟเวอร์จะมีรหัสสถานะ HTTP เพิ่มเติมเพื่อระบุสาเหตุของข้อผิดพลาด 500 อย่างใกล้ชิดยิ่งขึ้น:
- 500.0 – เกิดข้อผิดพลาดของโมดูลหรือ ISAPI
- 500.11 – แอปพลิเคชันกำลังปิดบนเว็บเซิร์ฟเวอร์
- 500.12 – แอปพลิเคชันกำลังเริ่มต้นใหม่บนเว็บเซิร์ฟเวอร์ไม่ว่าง
- 500.13 – เว็บเซิร์ฟเวอร์ยุ่งเกินไป
- 500.15 – ไม่อนุญาตให้ส่งคำขอ global.asax โดยตรง
- 500.19 – ข้อมูลการกำหนดค่าไม่ถูกต้อง
- 500.21 – ไม่รู้จักโมดูล
- 500.22 – การกำหนดค่า ASP.NET httpModules ใช้ไม่ได้ในโหมดไปป์ไลน์ที่มีการจัดการ
- 500.23 – การกำหนดค่า ASP.NET httpHandlers ใช้ไม่ได้ในโหมดไปป์ไลน์ที่มีการจัดการ
- 500.24 – การกำหนดค่าการเลียนแบบ ASP.NET ใช้ไม่ได้ในโหมดไปป์ไลน์ที่มีการจัดการ
- 500.50 – เกิดข้อผิดพลาดในการเขียนซ้ำระหว่างการจัดการการแจ้งเตือน RQ_BEGIN_REQUEST เกิดข้อผิดพลาดในการกำหนดค่าหรือการดำเนินการกฎขาเข้า
- 500.51 – เกิดข้อผิดพลาดในการเขียนซ้ำระหว่างการจัดการการแจ้งเตือน GL_PRE_BEGIN_REQUEST เกิดข้อผิดพลาดในการกำหนดค่าส่วนกลางหรือการดำเนินการกฎสากล
- 500.52 – เกิดข้อผิดพลาดในการเขียนซ้ำระหว่างการจัดการการแจ้งเตือน RQ_SEND_RESPONSE มีการดำเนินการกฎขาออก
- 500.53 – เกิดข้อผิดพลาดในการเขียนซ้ำระหว่างการจัดการการแจ้งเตือน RQ_RELEASE_REQUEST_STATE เกิดข้อผิดพลาดในการเรียกใช้กฎขาออก กฎได้รับการกำหนดค่าให้ดำเนินการก่อนที่แคชผู้ใช้เอาต์พุตจะได้รับการอัปเดต
500.100 – ข้อผิดพลาด ASP ภายใน
ข้อผิดพลาด 500 ข้อส่งผลกระทบต่อ SEO
ซึ่งแตกต่างจากข้อผิดพลาด 503 ซึ่งใช้สำหรับโหมดการบำรุงรักษา WordPress และบอกให้ Google กลับมาตรวจสอบในภายหลัง ข้อผิดพลาด 500 อาจส่งผลเสียต่อ SEO หากไม่ได้รับการแก้ไขทันที หากไซต์ของคุณหยุดทำงานเพียง 10 นาที และมีการรวบรวมข้อมูลอย่างสม่ำเสมอหลายครั้ง โปรแกรมรวบรวมข้อมูลจะได้รับหน้าที่ส่งมาจากแคช หรือ Google อาจไม่มีโอกาสได้รวบรวมข้อมูลซ้ำก่อนที่จะสำรองข้อมูล ในสถานการณ์นี้ คุณสบายดี
อย่างไรก็ตาม หากไซต์หยุดทำงานเป็นเวลานาน เช่น 6 ชั่วโมงขึ้นไป Google อาจเห็นข้อผิดพลาด 500 ว่าเป็นปัญหาระดับไซต์ที่ต้องแก้ไข ซึ่ง อาจส่งผลต่ออันดับของคุณ หากคุณกังวลเกี่ยวกับข้อผิดพลาดที่เกิดซ้ำ 500 ครั้ง คุณควรหาสาเหตุว่าทำไมมันถึงเกิดขึ้นตั้งแต่แรก วิธีแก้ปัญหาด้านล่างบางส่วนสามารถช่วยได้
วิธีแก้ไขข้อผิดพลาด 500 Internal Server Error
คุณควรเริ่มแก้ไขปัญหาที่ใดเมื่อพบข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 รายการในไซต์ WordPress ของคุณ บางครั้งคุณอาจไม่รู้ว่าจะเริ่มต้นที่ไหน โดยทั่วไปแล้วจะมีข้อผิดพลาด 500 ข้ออยู่บนเซิร์ฟเวอร์ แต่จากประสบการณ์ของเรา ข้อผิดพลาดเหล่านี้เกิดจากสองสิ่ง อย่างแรกคือ ข้อผิดพลาด ของผู้ใช้ (ปัญหาฝั่งไคลเอ็นต์) และประการที่สองคือมี ปัญหากับเซิร์ฟเวอร์ ดังนั้นเราจะดำดิ่งลงไปในทั้งสองอย่างเล็กน้อย
สิ่งนี้ไม่เคยไม่น่ารำคาญ pic.twitter.com/pPKxbkvI9K
– Dare Obasanjo (@Carnage4Life) 26 กันยายน 2019
ตรวจสอบสาเหตุทั่วไปเหล่านี้และวิธีแก้ไขข้อผิดพลาด 500 เซิร์ฟเวอร์ภายใน และสำรองข้อมูลและทำงานได้ทันที
1. ลองโหลดหน้าซ้ำ
นี้อาจดูเหมือนชัดเจนเล็กน้อยสำหรับบางคน แต่สิ่งที่ง่ายที่สุดและสิ่งแรกที่คุณควรลองเมื่อพบข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 คือรอสักครู่หรือดังนั้นแล้วโหลดหน้าใหม่ (F5 หรือ Ctrl + F5) อาจเป็นไปได้ว่าโฮสต์หรือเซิร์ฟเวอร์ทำงานหนักเกินไปและไซต์จะกลับมาทันที ในขณะที่คุณรอ คุณสามารถลองใช้เบราว์เซอร์อื่นได้อย่างรวดเร็วเพื่อแยกแยะว่าเป็นปัญหา
สิ่งที่คุณทำได้อีกอย่างคือวางเว็บไซต์ลงใน downforeveryoneorjustme.com เว็บไซต์นี้จะบอกคุณว่าไซต์นั้นล่มหรือเป็นปัญหาของคุณ เครื่องมือเช่นนี้ตรวจสอบรหัสสถานะ HTTP ที่ส่งคืนจากเซิร์ฟเวอร์ หากเป็นอย่างอื่นที่ไม่ใช่ "ทุกอย่างเรียบร้อย" 200 รายการจะส่งคืนตัวบ่งชี้ที่ลดลง
นอกจากนี้เรายังสังเกตเห็นว่า บางครั้งสิ่งนี้อาจเกิดขึ้นทันทีหลังจากที่คุณอัปเดตปลั๊กอินหรือธีม บนไซต์ WordPress ของคุณ โดยปกติแล้วจะเป็นในโฮสต์ที่ตั้งค่าไม่ถูกต้อง สิ่งที่เกิดขึ้นคือพวกเขาประสบปัญหาการหมดเวลาชั่วคราวหลังจากนั้น อย่างไรก็ตาม สิ่งต่างๆ มักจะแก้ไขได้เองในไม่กี่วินาที ดังนั้นการรีเฟรชคือทั้งหมดที่คุณต้องทำ
2. ล้างแคชเบราว์เซอร์ของคุณ
การล้างแคชของเบราว์เซอร์เป็นอีกขั้นตอนหนึ่งในการแก้ปัญหาที่ดีเสมอ ก่อนที่จะลงลึกในการแก้ไขจุดบกพร่องในไซต์ของคุณ ด้านล่างนี้คือคำแนะนำเกี่ยวกับวิธีการล้างแคชในเบราว์เซอร์ต่างๆ:
- วิธีบังคับให้รีเฟรชหน้าเดียวสำหรับเบราว์เซอร์ทั้งหมด
- วิธีล้างแคชเบราว์เซอร์สำหรับ Google Chrome
- วิธีล้างแคชของเบราว์เซอร์สำหรับ Mozilla Firefox
- วิธีล้างแคชเบราว์เซอร์สำหรับ Safari
- วิธีล้างแคชของเบราว์เซอร์สำหรับ Internet Explorer
- วิธีล้างแคชเบราว์เซอร์สำหรับ Microsoft Edge
- วิธีล้างแคชเบราว์เซอร์สำหรับ Opera
3. ตรวจสอบบันทึกเซิร์ฟเวอร์ของคุณ
คุณควรใช้ประโยชน์จากบันทึกข้อผิดพลาดของคุณด้วย หากคุณเป็นไคลเอนต์ Kinsta คุณสามารถดูข้อผิดพลาดได้อย่างง่ายดายในตัวแสดงบันทึกในแดชบอร์ด MyKinsta วิธีนี้จะช่วยให้คุณจำกัดปัญหาให้แคบลงได้อย่างรวดเร็ว โดยเฉพาะอย่างยิ่งหากเกิดจากปลั๊กอินในไซต์ของคุณ

หากโฮสต์ของคุณไม่มีเครื่องมือบันทึก คุณยังสามารถเปิดใช้งานโหมดแก้ไขข้อบกพร่องของ WordPress ได้โดยเพิ่มโค้ดต่อไปนี้ในไฟล์ wp-config.php เพื่อเปิดใช้งานการบันทึก:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
โดยทั่วไปบันทึกจะอยู่ในไดเร็กทอรี /wp-content คนอื่น ๆ เช่นที่ Kinsta อาจมีโฟลเดอร์เฉพาะที่เรียกว่า "บันทึก"

คุณยังสามารถตรวจสอบไฟล์บันทึกใน Apache และ Nginx ซึ่งโดยทั่วไปจะอยู่ที่นี่:
- อาปาเช่: /var/log/apache2/error.log
- Nginx: /var/log/nginx/error.log
หากคุณเป็นลูกค้าของ Kinsta คุณยังสามารถใช้ประโยชน์จากเครื่องมือวิเคราะห์ของเราเพื่อดูรายละเอียดข้อผิดพลาดทั้งหมด 500 รายการ และดูความถี่และเวลาที่มันเกิดขึ้น วิธีนี้จะช่วยคุณแก้ปัญหาได้หากเป็นปัญหาต่อเนื่องหรือบางทีอาจแก้ไขได้เอง

ระบุและแก้ไขข้อผิดพลาดได้อย่างง่ายดายในตัวแสดงบันทึกของแดชบอร์ด MyKinsta ที่รวมศูนย์อันทรงพลังของคุณ ลองใช้ Kinsta ฟรี
หากข้อผิดพลาด 500 แสดงขึ้นเนื่องจากข้อผิดพลาด PHP ร้ายแรง คุณสามารถลองเปิดใช้งานการรายงานข้อผิดพลาด PHP ได้ เพียงเพิ่มรหัสต่อไปนี้ในไฟล์ที่มีข้อผิดพลาด โดยทั่วไป คุณสามารถจำกัดไฟล์ให้แคบลงในแท็บคอนโซลของ Google Chrome DevTools
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
และคุณอาจต้องแก้ไขไฟล์ php.ini ของคุณด้วยสิ่งต่อไปนี้:
display_errors = on
4. เกิดข้อผิดพลาดในการสร้างการเชื่อมต่อฐานข้อมูล
ข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 ข้อสามารถเกิดขึ้นได้จากข้อผิดพลาดในการเชื่อมต่อฐานข้อมูล คุณอาจเห็นข้อผิดพลาดที่แตกต่างกัน ทั้งนี้ขึ้นอยู่กับเบราว์เซอร์ของคุณ แต่ ทั้งคู่จะสร้างรหัสสถานะ HTTP 500 โดยไม่คำนึงถึงบันทึกเซิร์ฟเวอร์ของคุณ
ด้านล่างนี้เป็นตัวอย่างของข้อความ “ข้อผิดพลาดในการสร้างการเชื่อมต่อฐานข้อมูล” ที่ดูเหมือนเบราว์เซอร์ของคุณ หน้าทั้งหน้าว่างเปล่าเนื่องจากไม่สามารถดึงข้อมูลเพื่อแสดงหน้าได้ เนื่องจากการเชื่อมต่อทำงานไม่ถูกต้อง สิ่งนี้ไม่เพียงแต่ทำให้ส่วนหน้าของเว็บไซต์ของคุณเสียหาย แต่ยังป้องกันไม่ให้คุณเข้าถึงแดชบอร์ด WordPress ของคุณอีกด้วย

แล้วทำไมสิ่งนี้ถึงเกิดขึ้น? ต่อไปนี้เป็นสาเหตุทั่วไปบางประการด้านล่าง

- ปัญหาที่พบบ่อยที่สุดคือ ข้อมูลรับรองการเข้าสู่ระบบฐานข้อมูลของคุณไม่ถูกต้อง ไซต์ WordPress ของคุณใช้ข้อมูลการเข้าสู่ระบบแยกต่างหากเพื่อเชื่อมต่อกับฐานข้อมูล MySQL
- ฐานข้อมูล WordPress ของคุณเสียหาย ด้วยชิ้นส่วนเคลื่อนไหวจำนวนมากที่มีธีม ปลั๊กอิน และผู้ใช้ลบและติดตั้งอย่างต่อเนื่อง บางครั้งฐานข้อมูลอาจเสียหาย ซึ่งอาจเกิดจากตารางที่ขาดหายไปหรือเสียหายแต่ละรายการ หรือข้อมูลบางส่วนอาจถูกลบโดยไม่ได้ตั้งใจ
- คุณอาจมีไฟล์เสียหายในการติดตั้ง WordPress สิ่งนี้สามารถเกิดขึ้นได้ในบางครั้งเนื่องจากแฮกเกอร์
- ปัญหาเกี่ยวกับเซิร์ฟเวอร์ฐานข้อมูลของคุณ มีหลายสิ่งหลายอย่างที่อาจผิดพลาดได้เมื่อสิ้นสุดโฮสต์เว็บ เช่น ฐานข้อมูลโอเวอร์โหลดจากการรับส่งข้อมูลที่พุ่งสูงขึ้น หรือไม่ตอบสนองจากการเชื่อมต่อพร้อมกันมากเกินไป นี่เป็นเรื่องปกติธรรมดากับโฮสต์ที่ใช้ร่วมกัน เนื่องจากพวกเขาใช้ทรัพยากรเดียวกันสำหรับผู้ใช้จำนวนมากบนเซิร์ฟเวอร์เดียวกัน
ตรวจสอบโพสต์เชิงลึกของเราเกี่ยวกับวิธีแก้ไขข้อผิดพลาดในการสร้างการเชื่อมต่อฐานข้อมูลใน WordPress
5. ตรวจสอบปลั๊กอินและธีมของคุณ
ปลั๊กอินและธีมของบริษัทอื่นสามารถทำให้เกิดข้อผิดพลาดภายในเซิร์ฟเวอร์ 500 รายการได้อย่างง่ายดาย เราเคยเห็นทุกประเภทสาเหตุที่นี่ที่ Kinsta ตั้งแต่ปลั๊กอินตัวเลื่อนไปจนถึงปลั๊กอินตัวหมุนโฆษณา หลายครั้งที่คุณควรเห็นข้อผิดพลาดทันทีหลังจากติดตั้งสิ่งใหม่หรือเรียกใช้การอัปเดต นี่คือเหตุผลหนึ่งว่าทำไมเราจึงแนะนำให้ใช้สภาพแวดล้อมการจัดเตรียมสำหรับการอัปเดตหรืออย่างน้อยก็เรียกใช้การอัปเดตทีละรายการ มิฉะนั้น หากคุณพบข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 ข้อ คุณกำลังพยายามค้นหาสาเหตุโดยทันที
วิธีแก้ไขสองสามวิธีคือการปิดใช้งานปลั๊กอินทั้งหมดของคุณ จำไว้ว่าคุณจะไม่สูญเสียข้อมูลใด ๆ หากคุณเพียงแค่ปิดการใช้งานปลั๊กอิน หากคุณยังคงสามารถเข้าถึงผู้ดูแลระบบของคุณได้ วิธีที่รวดเร็วในการดำเนินการนี้คือเรียกดู "ปลั๊กอิน" และเลือก "ปิดใช้งาน" จากเมนูการดำเนินการเป็นกลุ่ม การดำเนินการนี้จะปิดใช้งานปลั๊กอินทั้งหมดของคุณ

หากวิธีนี้แก้ปัญหาได้ คุณจะต้องค้นหาผู้กระทำความผิด เริ่มเปิดใช้งานทีละรายการ โหลดไซต์ซ้ำหลังจากเปิดใช้งานแต่ละครั้ง เมื่อคุณเห็นข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 ส่งคืน แสดงว่าคุณพบปลั๊กอินที่ทำงานผิดปกติ จากนั้น คุณสามารถติดต่อผู้พัฒนาปลั๊กอินเพื่อขอความช่วยเหลือหรือโพสต์ตั๋วสนับสนุนในที่เก็บ WordPress
หากคุณไม่สามารถเข้าสู่ระบบผู้ดูแลระบบ WordPress คุณสามารถ FTP ไปยังเซิร์ฟเวอร์ของคุณและเปลี่ยนชื่อโฟลเดอร์ปลั๊กอินเป็นบางอย่างเช่น plugins_old จากนั้นตรวจสอบเว็บไซต์ของคุณอีกครั้ง หากใช้งานได้ คุณจะต้องทดสอบแต่ละปลั๊กอินทีละตัว เปลี่ยนชื่อโฟลเดอร์ปลั๊กอินของคุณกลับเป็น "ปลั๊กอิน" จากนั้นเปลี่ยนชื่อโฟลเดอร์ปลั๊กอินแต่ละโฟลเดอร์ภายในโฟลเดอร์นั้นทีละรายการจนกว่าคุณจะพบ คุณสามารถลองทำซ้ำบนไซต์การแสดงละครก่อน

ตรวจสอบให้แน่ใจเสมอว่าปลั๊กอิน ธีม และคอร์ WordPress ของคุณอัพเดทอยู่เสมอ และตรวจสอบให้แน่ใจว่าคุณใช้ PHP เวอร์ชันที่รองรับ หากพบว่ามีความขัดแย้งกับโค้ดที่ไม่ถูกต้องในปลั๊กอิน คุณอาจต้องนำนักพัฒนา WordPress เพื่อแก้ไขปัญหา
6. ติดตั้ง WordPress Core ใหม่
บางครั้งไฟล์หลักของ WordPress อาจเสียหายได้ โดยเฉพาะในไซต์ที่เก่ากว่า ที่จริงแล้วการอัปโหลดเฉพาะแกนหลักของ WordPress ใหม่นั้นทำได้ง่ายมากโดยไม่กระทบต่อปลั๊กอินหรือธีมของคุณ เรามีคำแนะนำเชิงลึกพร้อม 5 วิธีในการติดตั้ง WordPress ใหม่ และแน่นอนว่าต้องสำรองข้อมูลก่อนดำเนินการต่อ ข้ามไปยังส่วนใดส่วนหนึ่งด้านล่าง:
- วิธีติดตั้ง WordPress ใหม่จากแดชบอร์ด WordPress ในขณะที่รักษาเนื้อหาที่มีอยู่
- วิธีติดตั้ง WordPress ใหม่ด้วยตนเองผ่าน FTP ในขณะที่รักษาเนื้อหาที่มีอยู่
- วิธีติดตั้ง WordPress ใหม่ด้วยตนเองผ่าน WP-CLI ในขณะที่รักษาเนื้อหาที่มีอยู่
7. ข้อผิดพลาดในการอนุญาต
ข้อผิดพลาดในการอนุญาตกับไฟล์หรือโฟลเดอร์บนเซิร์ฟเวอร์ของคุณอาจทำให้เกิดข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 รายการได้ ต่อไปนี้คือคำแนะนำทั่วไปบางประการสำหรับการอนุญาตเมื่อกล่าวถึงการอนุญาตไฟล์และโฟลเดอร์ใน WordPress:
- ไฟล์ทั้งหมดควรเป็น 644 (-rw-r–r–) หรือ 640
- ไดเร็กทอรีทั้งหมดควรเป็น 755 (drwxr-xr-x) หรือ 750
- ไม่ควรให้ไดเร็กทอรี 777 แม้แต่อัพโหลดไดเร็กทอรี
- การชุบแข็ง: wp-config.php สามารถตั้งค่าเป็น 440 หรือ 400 เพื่อป้องกันไม่ให้ผู้ใช้รายอื่นบนเซิร์ฟเวอร์อ่านได้
ดูบทความ WordPress Codex เกี่ยวกับการเปลี่ยนแปลงการอนุญาตไฟล์สำหรับคำอธิบายเชิงลึกเพิ่มเติม
คุณสามารถดูการอนุญาตไฟล์ของคุณได้อย่างง่ายดายด้วยไคลเอนต์ FTP (ดังที่แสดงด้านล่าง) คุณยังสามารถติดต่อทีมสนับสนุนโฮสต์ WordPress ของคุณและขอให้พวกเขาให้สิทธิ์ไฟล์ GREP อย่างรวดเร็วในโฟลเดอร์และไฟล์ของคุณเพื่อให้แน่ใจว่าได้รับการตั้งค่าอย่างถูกต้อง

8. ขีด จำกัด หน่วยความจำ PHP
ข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 ข้ออาจเกิดจากการใช้หน่วยความจำ PHP บนเซิร์ฟเวอร์ของคุณจนหมด คุณอาจลองเพิ่มขีดจำกัด ทำตามคำแนะนำด้านล่างเกี่ยวกับวิธีเปลี่ยนขีดจำกัดนี้ใน cPanel, Apache, ไฟล์ php.ini ของคุณ และ wp-config.php
เพิ่มขีด จำกัด หน่วยความจำ PHP ใน cPanel
หากคุณกำลังใช้งานบนโฮสต์ที่ใช้ cPanel คุณสามารถเปลี่ยนสิ่งนี้ได้อย่างง่ายดายจาก UI ภายใต้ซอฟต์แวร์คลิกที่ "เลือกเวอร์ชัน PHP"

คลิกที่ "สลับไปที่ตัวเลือก PHP"

จากนั้นคุณสามารถคลิกที่แอตทริบิวต์ memory_limit
และเปลี่ยนค่าได้ จากนั้นคลิกที่ "บันทึก"

เพิ่มขีด จำกัด หน่วยความจำ PHP ใน Apache
ไฟล์ . .htaccess
เป็นไฟล์พิเศษที่ซ่อนอยู่ซึ่งมีการตั้งค่าต่างๆ ที่คุณสามารถใช้เพื่อแก้ไขพฤติกรรมของเซิร์ฟเวอร์ จนถึงระดับเฉพาะของไดเร็กทอรี ขั้นแรกให้ลงชื่อเข้าใช้ไซต์ของคุณผ่าน FTP หรือ SSH ดูไดเรกทอรีรากของคุณ และดูว่ามีไฟล์ . .htaccess
อยู่ที่นั่นหรือไม่

หากมี คุณสามารถแก้ไขไฟล์นั้นเพื่อเพิ่มโค้ดที่จำเป็นสำหรับการเพิ่มขีดจำกัดหน่วยความจำ PHP เป็นไปได้มากว่าตั้งไว้ที่ 64M หรือต่ำกว่า คุณสามารถลองเพิ่มค่านี้ได้
php_value memory_limit 128M
เพิ่มขีด จำกัด หน่วยความจำ PHP ในไฟล์ php.ini
หากวิธีข้างต้นใช้ไม่ได้ผล คุณอาจลองแก้ไข php.ini
ของคุณ ลงชื่อเข้าใช้ไซต์ของคุณผ่าน FTP หรือ SSH ไปที่ไดเรกทอรีรากของไซต์แล้วเปิดหรือสร้าง php.ini

หากไฟล์นั้นอยู่ที่นั่นแล้ว ให้ค้นหาการตั้งค่าทั้งสามและแก้ไขหากจำเป็น หากคุณเพิ่งสร้างไฟล์ หรือไม่พบการตั้งค่าใดๆ คุณสามารถวางโค้ดด้านล่างนี้ คุณสามารถปรับเปลี่ยนค่าต่างๆ ให้ตรงกับความต้องการของคุณได้
memory_limit = 128M
โฮสต์ที่ใช้ร่วมกันบางแห่งอาจต้องการให้คุณเพิ่มคำสั่ง suPHP ในไฟล์ . .htaccess
เพื่อให้การตั้งค่าไฟล์ php.ini
ข้างต้นทำงานได้ ในการดำเนินการนี้ ให้แก้ไขไฟล์ . .htaccess
ของคุณ ซึ่งอยู่ที่รูทของไซต์ของคุณ และเพิ่มโค้ดต่อไปนี้ที่ด้านบนของไฟล์:
<IfModule mod_suphp.c> suPHP_ConfigPath /home/yourusername/public_html </IfModule>
หากวิธีข้างต้นไม่ได้ผลสำหรับคุณ อาจเป็นไปได้ว่าโฮสต์ของคุณล็อกการตั้งค่าส่วนกลางและกำหนดค่าให้ใช้ไฟล์ . .user.ini
แทน ในการแก้ไขไฟล์ .user.ini
ให้ลงชื่อเข้าใช้ไซต์ของคุณผ่าน FTP หรือ SSH ไปที่ไดเรกทอรีรากของไซต์แล้วเปิดหรือสร้างไฟล์ . .user.ini
จากนั้นคุณสามารถวางในรหัสต่อไปนี้:
memory_limit = 128M
เพิ่มขีด จำกัด หน่วยความจำ PHP ใน wp-config.php
ตัวเลือกสุดท้ายไม่ใช่ตัวเลือกที่เราชื่นชอบ แต่ถ้าทุกอย่างล้มเหลว คุณก็ทำได้ ขั้นแรก ลงชื่อเข้าใช้ไซต์ของคุณผ่าน FTP หรือ SSH และค้นหาไฟล์ wp-config.php ซึ่งโดยทั่วไปจะอยู่ที่รูทของไซต์ของคุณ

เพิ่มรหัสต่อไปนี้ที่ด้านบนของ wp-config.php
ของคุณ:
define('WP_MEMORY_LIMIT', '128M');
คุณยังสามารถถามโฮสต์ของคุณว่าคุณกำลังประสบปัญหาขีดจำกัดหน่วยความจำหรือไม่ เราใช้เครื่องมือ Kinsta APM และวิธีการแก้ไขปัญหาอื่นๆ ที่ Kinsta เพื่อช่วยให้ลูกค้าจำกัดขอบเขตของปลั๊กอิน การสืบค้น หรือสคริปต์ที่อาจใช้จนหมดขีดจำกัด คุณยังสามารถใช้คีย์ New Relic ที่คุณกำหนดเองได้จากใบอนุญาตของคุณเอง

9. ปัญหากับไฟล์ .htaccess . ของคุณ
Kinsta ใช้ Nginx เท่านั้น แต่ถ้าคุณใช้โฮสต์ WordPress ที่ใช้ Apache เป็นไปได้มากว่าไฟล์ . .htaccess
ของคุณมีปัญหาหรือเสียหาย ทำตามขั้นตอนด้านล่างเพื่อสร้างใหม่ตั้งแต่ต้น
ขั้นแรก ลงชื่อเข้าใช้ไซต์ของคุณผ่าน FTP หรือ SSH และเปลี่ยนชื่อไฟล์ . .htaccess
เป็น . .htaccess_old

โดยปกติ ในการสร้างไฟล์นี้ขึ้นมาใหม่ คุณสามารถบันทึกลิงก์ถาวรของคุณอีกครั้งใน WordPress อย่างไรก็ตาม หากคุณอยู่ระหว่างข้อผิดพลาด 500 เซิร์ฟเวอร์ภายใน คุณมักจะไม่สามารถเข้าถึงผู้ดูแลระบบ WordPress ของคุณได้ ดังนั้นจึงไม่ใช่ตัวเลือก ดังนั้น คุณจึงสามารถสร้างไฟล์ . .htaccess
ใหม่และป้อนเนื้อหาต่อไปนี้ได้ จากนั้นอัปโหลดไปยังเซิร์ฟเวอร์ของคุณ
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
ดู WordPress Codex สำหรับตัวอย่างเพิ่มเติม เช่น ไฟล์ . .htaccess
เริ่มต้นสำหรับหลายไซต์
10. ข้อผิดพลาดในการเข้ารหัสหรือไวยากรณ์ใน CGI/Perl Script ของคุณ
ข้อผิดพลาด 500 ข้อที่เกิดจากข้อผิดพลาดใน CGI และ Perl นั้นพบได้น้อยกว่าที่เคยเป็นมามาก แม้ว่าจะยังคงมีมูลค่าการกล่าวขวัญ โดยเฉพาะอย่างยิ่งสำหรับผู้ที่ใช้ cPanel ซึ่งยังคงมีการใช้สคริปต์ CGI แบบคลิกเดียวจำนวนมาก ตามที่ AEM บน Stack Overflow พูดว่า:
CGI ถูกแทนที่ด้วยเทคโนโลยีการเขียนโปรแกรมเว็บที่หลากหลาย รวมถึง PHP, ส่วนขยาย Apache ต่างๆ เช่น mod_perl, Java ของรสชาติและเฟรมเวิร์กต่างๆ รวมถึง Java EE, Struts, Spring ฯลฯ เฟรมเวิร์กที่ใช้ Python เช่น Django, Ruby on Rails และอื่นๆ อีกมากมาย เฟรมเวิร์ก Ruby อื่นๆ และเทคโนโลยีต่างๆ ของ Microsoft
ต่อไปนี้คือเคล็ดลับบางประการเมื่อทำงานกับสคริปต์ CGI:
- เมื่อแก้ไข ให้ใช้โปรแกรมแก้ไขข้อความธรรมดาเสมอ เช่น Atom, Sublime หรือ Notepad++ เพื่อให้แน่ใจว่าจะยังคงอยู่ในรูปแบบ ASCII
- ตรวจสอบให้แน่ใจว่าใช้การอนุญาตที่ถูกต้องของ chmod 755 ในสคริปต์และไดเร็กทอรี CGI
- อัปโหลดสคริปต์ CGI ของคุณในโหมด ASCII (ซึ่งคุณสามารถเลือกได้ในโปรแกรมแก้ไข FTP) ลงในไดเร็กทอรี cgi-bin บนเซิร์ฟเวอร์ของคุณ
- ยืนยันว่าโมดูล Perl ที่คุณต้องการสำหรับสคริปต์ของคุณได้รับการติดตั้งและสนับสนุนแล้ว
ระบุและแก้ไขข้อผิดพลาดได้อย่างง่ายดายในตัวแสดงบันทึกของแดชบอร์ด MyKinsta ที่รวมศูนย์อันทรงพลังของคุณ ลองใช้ Kinsta ฟรี
11. ปัญหาเซิร์ฟเวอร์ (ตรวจสอบกับโฮสต์ของคุณ)
สุดท้าย เนื่องจากข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 ข้ออาจเกิดขึ้นจาก การหมดเวลาของ PHP หรือ ข้อผิดพลาด PHP ที่ร้ายแรงกับปลั๊กอินของบุคคลที่สาม คุณจึงตรวจสอบกับโฮสต์ WordPress ได้เสมอ บางครั้งข้อผิดพลาดเหล่านี้อาจแก้ไขได้ยากหากไม่มีผู้เชี่ยวชาญ นี่เป็นเพียงตัวอย่างทั่วไปบางประการของข้อผิดพลาดบางอย่างที่เรียกใช้รหัสสถานะ HTTP 500 รหัสบนเซิร์ฟเวอร์ซึ่งอาจทำให้คุณต้องเกาหัว
PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mysql_error()...
PHP message: PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /www/folder/web/shared/content/plugins/plugin/functions.php:525
เราตรวจสอบไซต์ของลูกค้าทั้งหมด ที่นี่ที่ Kinsta และจะ ได้รับแจ้งโดยอัตโนมัติเมื่อเกิดข้อผิดพลาดประเภท นี้ ซึ่งช่วยให้เราสามารถดำเนินการเชิงรุกและเริ่มแก้ไขปัญหาได้ทันที เรายังใช้โฮสต์ที่มีการจัดการ LXD และคอนเทนเนอร์ซอฟต์แวร์ LXC ที่ประสานไว้สำหรับแต่ละไซต์ ซึ่งหมายความว่าทุกไซต์ WordPress ตั้งอยู่ในคอนเทนเนอร์ที่แยกออกมาซึ่งมีทรัพยากรซอฟต์แวร์ทั้งหมดที่จำเป็นในการรัน (Linux, Nginx, PHP, MySQL) แหล่งข้อมูลเป็นส่วนตัว 100% และจะไม่แบ่งปันกับผู้อื่นหรือแม้แต่ไซต์ของคุณเอง
การหมดเวลาของ PHP อาจเกิดจากการ ขาดพนักงาน PHP แม้ว่าโดยทั่วไปแล้วสิ่งเหล่านี้จะทำให้เกิดข้อผิดพลาด 504 ไม่ใช่ข้อผิดพลาด 500 รายการ สิ่งเหล่านี้กำหนดจำนวนคำขอที่ไซต์ของคุณสามารถจัดการได้ในเวลาที่กำหนด พูดง่ายๆ ก็คือ คำขอที่ไม่ได้แคชสำหรับเว็บไซต์ของคุณแต่ละครั้งจะได้รับการจัดการโดย PHP Worker
เมื่อพนักงาน PHP ยุ่งอยู่กับไซต์แล้ว พวกเขาก็เริ่มสร้างคิว เมื่อคุณถึงขีดจำกัดของผู้ปฏิบัติงาน PHP แล้ว คิวจะเริ่มส่งคำขอที่เก่ากว่าออกไป ซึ่งอาจส่งผลให้เกิดข้อผิดพลาด 500 หรือคำขอที่ไม่สมบูรณ์ อ่านบทความเชิงลึกของเราเกี่ยวกับพนักงาน PHP
ตรวจสอบเว็บไซต์ของคุณ
หากคุณกังวลว่าข้อผิดพลาดประเภทนี้จะเกิดขึ้นบนไซต์ของคุณในอนาคต คุณสามารถใช้เครื่องมืออย่าง updown.io เพื่อตรวจสอบและแจ้งให้คุณทราบทันทีหากเกิดขึ้น จะส่งคำขอ HTTP HEAD ไปยัง URL ที่คุณเลือกเป็นระยะ คุณสามารถใช้หน้าแรกของคุณได้ เครื่องมือนี้ให้คุณตั้งค่าความถี่ตรวจสอบของ:
- 15 วินาที
- 30 วินาที
- 1 นาที
- 2 นาที
- 5 นาที
- 10 นาที
มันจะส่งอีเมลถึงคุณหากและเมื่อเว็บไซต์ของคุณหยุดทำงาน นี่คือตัวอย่างด้านล่าง
สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณกำลังพยายามแก้ไขข้อบกพร่องของปลั๊กอินที่ผิดพลาดหรืออยู่บนโฮสต์ที่ใช้ร่วมกัน ซึ่งมักจะทำให้เซิร์ฟเวอร์แออัด ข้อมูลนี้สามารถพิสูจน์ได้ว่าไซต์ของคุณอาจล่มบ่อยเพียงใด (แม้ในช่วงกลางดึก) นั่นเป็นเหตุผลที่เราแนะนำให้ไปกับโฮสต์ WordPress ที่มีการจัดการเสมอ อย่าลืมดูโพสต์ของเราที่สำรวจเหตุผลหลัก 9 ประการในการเลือกโฮสติ้ง WordPress ที่มีการจัดการ
สรุป
ข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 ข้อนั้นน่าหงุดหงิดอยู่เสมอ แต่หวังว่าตอนนี้คุณจะรู้วิธีเพิ่มเติมสองสามวิธีในการแก้ไขปัญหาเพื่อให้ไซต์ของคุณกลับมาทำงานได้อีกครั้งอย่างรวดเร็ว โปรดจำไว้ว่า โดยทั่วไปแล้วข้อผิดพลาดประเภทนี้เกิดจากปลั๊กอินของบุคคลที่สาม ข้อผิดพลาด PHP ที่ร้ายแรง ปัญหาการเชื่อมต่อฐานข้อมูล ปัญหากับไฟล์ .htaccess หรือขีดจำกัดหน่วยความจำ PHP และบางครั้ง PHP หมดเวลา
มีอะไรที่เราพลาดไปหรือเปล่า? บางทีคุณอาจมีเคล็ดลับอื่นในการแก้ไขปัญหาข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 รายการ ถ้าเป็นเช่นนั้นแจ้งให้เราทราบด้านล่างในความคิดเห็น