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