Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

การแก้ไขข้อผิดพลาด 404 บน Nginx หลังจากอัปเกรดเซิร์ฟเวอร์ Ubuntu

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

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

วิธีที่ 1:แก้ไขหน้าข้อผิดพลาด Nginx ที่หายไป

หากไซต์โฮสต์บน AWS, เซิร์ฟเวอร์ส่วนตัว หรือการกำหนดค่าเซิร์ฟเวอร์อื่นๆ ในสแต็ก LEMP ไซต์อาจล่มแบบสุ่มหลังจากอัปเกรดเซิร์ฟเวอร์ Ubuntu พยายามเข้าถึงไซต์จากเว็บเบราว์เซอร์ อาจเป็นจากเครื่องอื่น สมมติว่าส่งกลับข้อผิดพลาด 404 ให้ไปที่ Ubuntu Server CLI และเรียกใช้คำสั่ง tail -f  เพื่อดูข้อผิดพลาดล่าสุดทั้งหมด

บันทึกควรประกอบด้วยข้อผิดพลาดเช่น:

ระบบของคุณกำลังประสบปัญหาจากหน้าข้อผิดพลาดที่หายไป คุณอาจเห็น 40x.html ในบรรทัดนี้ แม้ว่าจะไม่ใช่เรื่องปกติหากไซต์ของคุณล่มและคุณได้รับข้อผิดพลาด 404 เป็นการแลกเปลี่ยนกัน ใช้คำสั่ง ls   เพื่อดูว่ามีอะไรอยู่หรือไม่ ถ้าไม่เช่นนั้น คุณจะต้องสร้างโค้ด HTML สำหรับเพจสำหรับข้อผิดพลาด 50X

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

วิธีที่ 2:ทำให้ PHP ค้นหาซ็อกเก็ตที่เหมาะสม

คุณอาจพบข้อผิดพลาดที่อ่านข้อความเช่นนี้ใน

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

เรียกใช้คำสั่ง จากนั้นค้นหา -name 'php*fpm.sock' เพื่อดูว่ามีซ็อกเก็ตทำงานอยู่ที่ไหนสักแห่งในระบบของคุณหรือไม่

สมมติว่าคุณได้รับผลลัพธ์ที่เป็นบวก คุณจะต้องอัปเดตการกำหนดค่า Nginx เพื่อแสดงตำแหน่งที่ถูกต้องในซ็อกเก็ตที่ควรจะทำงาน โดยปกติแล้ว /directoryPath จะถูกแทนที่ด้วยเส้นทางที่ถูกต้อง บรรทัด php/php7.0-fpm.sock ควรอัปเดตการกำหนดค่าหากคุณใช้ไฟล์ซ็อกเก็ต

ผู้ใช้ซ็อกเก็ต TCP รุ่นเก่าที่ไม่ใช้ไฟล์ซ็อกเก็ตสามารถตรวจสอบได้ว่าซ็อกเก็ต PHP กำลังฟังพอร์ต 9000 หรือไม่โดยเรียกใช้ sudo netstat -tulpn | grep 9000  ออกจากบรรทัดคำสั่ง หากเป็นกรณีนี้ ให้เปิด fastcgi_pass ของคุณใน nano, vi หรือโปรแกรมแก้ไขข้อความอื่น แล้วเปลี่ยนบรรทัด unix:… เพื่อใช้ 127.0.0.1:9000 เพื่ออัปเดตซ็อกเก็ตแทน

หากไม่ได้ผล ตรวจสอบให้แน่ใจว่า php7.0-fpm หรือหมายเลขเวอร์ชันใดก็ตามที่คุณใช้กำลังทำงานอยู่โดยใช้คำสั่ง sudo systemctl restart php7.0-fpm แล้วตามด้วยการทำซ้ำขั้นตอนข้างต้น

โปรดทราบว่าในกรณีส่วนใหญ่ รายการ Listen ใน  และค่าจำเป็นต้องเหมือนกัน คุณอาจลองใช้การกำหนดค่าที่ใหม่กว่าหรือ 127.0.0.1:9000 สำหรับการกำหนดค่าแบบเก่า

เกี่ยวกับผู้เขียน

การแก้ไขข้อผิดพลาด 404 บน Nginx หลังจากอัปเกรดเซิร์ฟเวอร์ Ubuntu

เควิน แอร์โรว์ส

Kevin Arrows เป็นผู้เชี่ยวชาญด้านเทคโนโลยีที่มีประสบการณ์สูงและมีความรู้และมีประสบการณ์ในอุตสาหกรรมมานานกว่าทศวรรษ เขาได้รับการรับรองจาก Microsoft Certified Technology Specialist (MCTS) และมีความมุ่งมั่นอย่างแรงกล้าที่จะติดตามข่าวสารเกี่ยวกับการพัฒนาเทคโนโลยีล่าสุด Kevin ได้เขียนหัวข้อที่เกี่ยวข้องกับเทคโนโลยีอย่างกว้างขวาง โดยนำเสนอความเชี่ยวชาญและความรู้ของเขาในด้านต่างๆ เช่น การพัฒนาซอฟต์แวร์ ความปลอดภัยทางไซเบอร์ และการประมวลผลแบบคลาวด์ การมีส่วนร่วมของเขาในด้านเทคโนโลยีได้รับการยอมรับและเคารพอย่างกว้างขวางจากเพื่อนร่วมงานของเขา และเขาได้รับการยกย่องอย่างสูงจากความสามารถของเขาในการอธิบายแนวคิดทางเทคนิคที่ซับซ้อนในลักษณะที่ชัดเจนและรัดกุม