Cách sửa lỗi 404 Nginx sau khi nâng cấp máy chủ Ubuntu



Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

Một trong những tổ hợp máy chủ Web phổ biến nhất hiện nay có tính năng triển khai phần mềm máy chủ Web Nginx chạy trên phiên bản Ubuntu Server. Hệ thống này cực kỳ hiệu quả và dễ dàng cập nhật, vì cả hai gói đều tiếp tục nhận được các bản cập nhật thường xuyên. Quản trị viên hệ thống thường cài đặt các bản cập nhật thông qua trình quản lý gói apt, bởi vì Ubuntu Server không có giao diện đồ họa theo mặc định.



Việc nâng cấp Ubuntu Server đôi khi có thể tạo ra các lỗi bất thường và việc thiếu giao diện người dùng đồ họa này có thể gây khó khăn cho người mới bắt đầu khắc phục sự cố. Một vài lệnh đơn giản có thể là tất cả những gì cần thiết để sửa lỗi 404 Nginx sau khi nâng cấp Ubuntu.



Phương pháp 1: Sửa các trang lỗi Nginx bị thiếu

Nếu một trang web được lưu trữ trên AWS, máy chủ riêng hoặc bất kỳ cấu hình máy chủ nào khác trong ngăn xếp LEMP, nó có thể ngừng hoạt động ngẫu nhiên sau khi nâng cấp Máy chủ Ubuntu. Cố gắng truy cập trang web từ một trình duyệt Web, có thể trên một máy khác. Giả sử nó trả về lỗi 404, hãy truy cập CLI của Ubuntu Server và chạy lệnh tail -f để xem tất cả các lỗi gần đây nhất.



Nếu nhật ký có lỗi như:

Hệ thống của bạn đang bị thiếu trang lỗi. Bạn cũng có thể thấy 40x.html trong dòng này, mặc dù điều đó tương đối không phổ biến nếu trang web của bạn không hoạt động và đổi lại bạn gặp lỗi 404. Sử dụng lệnh ls để xem có gì ở đó không. Nếu không, bạn sẽ cần tạo mã HTML cho một trang cho lỗi 50X.



Hãy nhớ rằng sử dụng mặc định cấu trúc thư mục thường là một vấn đề với trình quản lý gói, có thể ghi đè lên bất cứ thứ gì được lưu trữ ở đó. Bạn có thể thay đổi dòng docroot trong cấu hình Nginx để ngăn chặn loại sự cố này nếu bạn được phép tạo cấu trúc thư mục tùy chỉnh.

Phương pháp 2: Tạo PHP Tìm đúng Socket

Bạn cũng có thể tìm thấy lỗi đọc nội dung như thế này trong

Điều này có nghĩa là bạn có PHP7.0 đang chạy, nhưng nó không chạy đúng chỗ. Số phiên bản có thể khác nhau tùy thuộc vào cách bạn đã cấu hình PHP. Cài đặt mặc định sẽ chạy từ hoặc là , nhưng nếu bạn gặp phải lỗi này thì nhiều khả năng không phải như vậy.

Chạy các lệnh rồi tìm -name ‘php * fpm.sock’ để xem có ổ cắm nào đang chạy ở đâu đó trên hệ thống của bạn không.

Giả sử bạn nhận được đầu ra tích cực, thì bạn cần cập nhật cấu hình Nginx của mình để hiển thị đúng vị trí trong ổ cắm sẽ được chạy. Đương nhiên, / directoryPath sẽ được thay thế bằng đường dẫn chính xác. Dòng php / php7.0-fpm.sock sẽ cập nhật cấu hình nếu bạn đang sử dụng tệp socket.

Người dùng socket TCP cũ hơn không sử dụng tệp socket có thể kiểm tra xem một socket PHP hiện đang lắng nghe cổng 9000 hay không bằng cách chạy sudo netstat -tulpn | grep 9000 ra khỏi dòng lệnh. Nếu đúng như vậy, hãy mở fastcgi_pass của bạn trong nano, vi hoặc một trình soạn thảo văn bản khác và thay đổi dòng unix:… để thay vào đó sử dụng 127.0.0.1:9000 để cập nhật socket.

Nếu cách này không hoạt động, hãy đảm bảo rằng php7.0-fpm hoặc bất kỳ số phiên bản nào bạn đang sử dụng đang chạy bằng lệnh sudo systemctl khởi động lại php7.0-fpm, sau đó lặp lại quá trình trên.

Hãy nhớ rằng trong hầu hết các trường hợp, mục nghe trong và giá trị trong cần phải giống nhau. Bạn có thể thử cho các cấu hình mới hơn hoặc 127.0.0.1:9000 cho các cấu hình cũ.

2 phút đọc