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



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

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



บางครั้งการอัปเกรดเซิร์ฟเวอร์ 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 รีสตาร์ท php7.0-fpm ตามด้วยการทำซ้ำขั้นตอนข้างต้น

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

2 นาทีอ่าน