ข้อผิดพลาดภายในเซิร์ฟเวอร์: มันคืออะไรและจะจัดการอย่างไร

ค่อนข้างบ่อยที่เจ้าของโฮสต์ต้องทนทุกข์ทรมานเนื่องจากข้อผิดพลาด 500 เกิดขึ้นอย่างต่อเนื่อง (Internal Server Error) อย่างที่เรียกกันว่าเป็นพิษต่อชีวิตหลายคน ตอนนี้เราจะพยายามทำความเข้าใจสาระสำคัญของสถานการณ์โดยสังเขปและดูว่าคุณจะกำจัดข้อผิดพลาดได้อย่างไรในอนาคต

ข้อผิดพลาดภายในเซิร์ฟเวอร์: มันคืออะไร?

มาเริ่มกันที่ความหมายของสิ่งนี้วลี มีข้อผิดพลาดหมายเลข 500 ในระบบ (ไดเร็กทอรี) ของข้อผิดพลาดของ Windows (และไม่เพียงเท่านั้น) ซึ่งสอดคล้องกับคำว่า Internal Server Error ของคอมพิวเตอร์ การแปลวลีนี้หมายถึงข้อผิดพลาดของเซิร์ฟเวอร์ภายในที่เกี่ยวข้องกับสถานะของโปรโตคอล HTTP

ข้อผิดพลาดเซิร์ฟเวอร์ภายใน internal

โดยพื้นฐานแล้ว ข้อผิดพลาดหมายถึงซอฟต์แวร์ซอฟต์แวร์เซิร์ฟเวอร์ไม่ทำงานหรือทำงาน แต่ส่วนประกอบอย่างน้อยหนึ่งอย่างทำงานผิดปกติในรูปแบบของการปฏิเสธคำขอของลูกค้า เช่น เครื่องมือค้นหาหรืออินเทอร์เน็ตเบราว์เซอร์

สาเหตุของข้อผิดพลาด

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

บ่อยครั้ง สถานการณ์นี้สามารถสังเกตได้บนไซต์เช่น WordPress, OpenCart, Joomla เป็นต้น หากโครงสร้างการจัดการเช่น WordPress ไม่ได้ใช้ในการสร้างไซต์ อาจเป็นเพราะตัวโฮสต์เองล้มเหลวเมื่อเชื่อมต่อส่วนขยาย PHP ที่ไม่ถูกต้อง หรือไซต์ส่งคืนส่วนหัว HTTP ที่ไม่ถูกต้องซึ่งไม่สามารถทำได้ ได้รับการยอมรับจากเซิร์ฟเวอร์ของคุณ

ข้อผิดพลาดเซิร์ฟเวอร์ภายใน internal

สาเหตุทั่วไปที่เท่าเทียมกันของข้อผิดพลาด Internal Server Error เรียกได้ว่าขาดสิทธิ์การเข้าถึงที่ถูกต้อง ตัวอย่างเช่น หากไฟล์สคริปต์ PHP ที่โฮสต์บนโฮสติ้งมีสิทธิ์การเข้าถึง 777 เป็นไปได้มากว่าการดำเนินการของพวกเขาถูกบล็อกโดยเซิร์ฟเวอร์อย่างง่ายๆ อันเป็นผลมาจากการที่ข้อความแสดงข้อผิดพลาดออกมา

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

ในบางกรณี Internal Server Errorอาจปรากฏขึ้นเมื่อโฮสต์เกินขีดจำกัดหน่วยความจำที่ใช้ พูดง่ายๆ ว่าสคริปต์สำหรับการดำเนินการต้องการมากกว่าที่ควรจะเป็น และท้ายที่สุด ขีดจำกัดดังกล่าวไม่ได้ถูกตั้งค่าไว้เฉพาะใน PHP เท่านั้น แต่มักมีข้อ จำกัด ในการใช้ทรัพยากรโดยสคริปต์ที่เรียกใช้งานได้ทั้งหมด

ข้อผิดพลาดเซิร์ฟเวอร์ภายใน วิธีแก้ไข

สุดท้าย หนึ่งในสถานการณ์ที่พบบ่อยที่สุดข้อผิดพลาดภายในเซิร์ฟเวอร์คือเนื้อหาของคำสั่งที่ไม่ถูกต้องในไฟล์ .htaccess (อย่างไรก็ตาม สิ่งนี้มักปรากฏขึ้นเมื่อทำงานกับกลไกของ WordPress) ตอนนี้เราใกล้จะพบวิธีแก้ปัญหาสำหรับแต่ละสถานการณ์แล้ว

ข้อผิดพลาดภายในเซิร์ฟเวอร์: วิธีแก้ไขด้วยวิธีที่ง่ายที่สุด

ก่อนอื่นเรามาดูกันว่าจะทำอะไรได้บ้างกับการตรวจจับสิทธิ์การเข้าถึงที่ไม่ถูกต้อง ในกรณีนี้ การอนุญาต 777 อนุญาตให้ทุกคนแก้ไขเนื้อหา ซึ่งส่งผลต่อความปลอดภัยอย่างไม่ต้องสงสัย ในสถานการณ์เช่นนี้ คุณต้องเปลี่ยนโดยใช้ค่า 755 กับโฟลเดอร์ 600 กับไฟล์สคริปต์ และ 644 กับไฟล์ข้อมูลเหล็กทั้งหมด

การแปลข้อผิดพลาดของเซิร์ฟเวอร์ภายใน

หากสคริปต์เรียกทำงานนานเกินไปคุณสามารถลองเพิ่มเวลารอได้ แต่มีสิ่งหนึ่งที่ทำได้ โซลูชันดังกล่าวสามารถทำงานบนเซิร์ฟเวอร์เฉพาะหรือ VPS (Virtual Private Server) แต่ในกรณีของโฮสติ้งที่ใช้ร่วมกันจะไม่มีผลใดๆ

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

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

ปัญหาเครื่องยนต์ WordPress

สถานการณ์ของ WordPress แย่ลงความจริงก็คือเอ็นจิ้นนี้สามารถเขียนทับไฟล์ .htaccess ดั้งเดิม ซึ่งมีหน้าที่ควบคุมการเข้าถึงไฟล์และโฟลเดอร์บนโฮสติ้ง และไฟล์ต้นฉบับจะต้องสร้างเพียงครั้งเดียวเท่านั้น และยิ่งกว่านั้นไม่ใช่ใน WordPress!

ข้อผิดพลาดเซิร์ฟเวอร์ภายใน internal

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

ในบางกรณีคุณอาจต้องอัปเดตWordPress เป็นเวอร์ชันล่าสุดและปิดใช้งานคุณลักษณะการเขียนทับไฟล์ ขั้นแรก ดาวน์โหลดไฟล์ .htaccess ดั้งเดิมไปยังเทอร์มินัลคอมพิวเตอร์ จากนั้นเข้าสู่โฟลเดอร์บนไซต์ตามเส้นทาง / wp-admin / รวม / ตามด้วยดาวน์โหลดไฟล์ อื่น ๆ.php ซึ่งคุณต้องเปิดใน Notepad มาตรฐาน (หรือโปรแกรมแก้ไขข้อความอื่น ๆ ) และค้นหาบรรทัดฟังก์ชัน "function save_mod_rewrite_rules" ตอนนี้ในฟังก์ชันเอง ให้ไปที่บรรทัด "return insert_with_markers ($ htaccess_file," WordPress ", $ rules);" และแทนที่ด้วย "return true" (แน่นอน คำสั่งทั้งหมดเขียนโดยไม่มีเครื่องหมายคำพูด) ที่เหลือก็แค่บันทึกการเปลี่ยนแปลงและอัปโหลดไฟล์ใหม่ไปยังโฮสต์ โดยแทนที่ไฟล์ misc.php เก่า

ข้อเสียเปรียบเพียงอย่างเดียวของวิธีนี้คือปิดใช้งานการอัปเดต WordPress โดยปกติเมื่อเชื่อมต่อปลั๊กอินแล้วจะไม่ทำงาน

ข้อสรุป

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