Mã trạng thái HTTP cung cấp thông tin về việc liệu một yêu cầu trực tuyến có thành công hay không và nếu không, lỗi là gì. Nhưng các thông báo lỗi không phải lúc nào cũng rõ ràng. Điều này đặc biệt đúng với trường hợp “Lỗi máy chủ nội bộ 500”. Thông báo này cho biết rằng đã xảy ra lỗi trong khi kết nối với máy chủ và không thể truy cập trang được yêu cầu. Tuy nhiên, nó sẽ không cho bạn biết chính xác lý do tại sao lại như vậy. May mắn thay, có nhiều phương pháp khác nhau để tìm ra nguyên nhân. Chúng tôi chỉ ra các nguồn lỗi điển hình và đưa ra các mẹo về những việc cần làm nếu bạn gặp phải lỗi HTTP 500.Nội dung
$ 1 Tên miền
Đăng ký TLD tuyệt vời với ít hơn 1 đô la cho năm đầu tiên.
Tại sao chờ đợi? Lấy tên miền yêu thích của bạn ngay hôm nay!
Lỗi máy chủ nội bộ nghĩa là gì?
Sử dụng mã trạng thái, máy chủ web cho trình duyệt của người dùng internet (máy khách) biết một yêu cầu (tức là truy cập một trang web) có thành công hay không. Nếu trình duyệt nhận được mã trạng thái 200, nó biết rằng mọi thứ đã diễn ra tốt đẹp. Tuy nhiên, người dùng không bao giờ thấy thông báo này vì nội dung được yêu cầu xuất hiện thay thế. Tình hình khác với mã trạng thái 400 và 500. Trong khi cái trước chỉ ra lỗi máy khách, cái sau liên quan đến máy chủ. Lỗi máy chủ nội bộ 500 là một mã trạng thái chung cho các lỗi máy chủ . Do đó, nhìn sơ qua thì không thể xác định được lỗi thực sự nằm ở đâu. Người dùng chỉ biết rằng máy chủ đã báo lỗi không mong muốn.
Tuy nhiên, nếu máy chủ đã cài đặt Microsoft Internet Information Services (Microsoft IIS), mã lỗi sẽ được chỉ định. Vị trí thập phân cho biết nguyên nhân của lỗi chi tiết hơn:
- 500.0: Đã xảy ra lỗi mô-đun hoặc ISAPI.
- 500.11: Ứng dụng đang tắt trên máy chủ web.
- 500.12: Ứng dụng đang bận khởi động lại trên máy chủ web.
- 500.13: Máy chủ web quá bận.
- 500.15: Yêu cầu trực tiếp đối với global.asax không được phép.
- 500.19: Dữ liệu cấu hình không hợp lệ.
- 500.21: Không nhận dạng được mô-đun.
- 500.22: Cấu hình ASP.NET httpModules không áp dụng trong chế độ Đường ống được quản lý.
- 500.23: Cấu hình ASP.NET httpHandlers không áp dụng trong chế độ Đường ống được quản lý.
- 500.24: Cấu hình mạo danh ASP.NET không áp dụng trong chế độ Đường ống được quản lý.
- 500,50: Đã xảy ra lỗi ghi lại trong quá trình xử lý thông báo RQ_BEGIN_REQUEST. Đã xảy ra lỗi cấu hình hoặc thực thi quy tắc gửi đến.
- 500.51: Đã xảy ra lỗi ghi lại trong quá trình xử lý thông báo GL_PRE_BEGIN_REQUEST. Đã xảy ra lỗi cấu hình chung hoặc thực thi quy tắc chung.
- 500.52: Đã xảy ra lỗi ghi lại trong quá trình xử lý thông báo RQ_SEND_RESPONSE. Đã xảy ra thực thi quy tắc đi.
- 500.53: Đã xảy ra lỗi ghi lại trong quá trình xử lý thông báo RQ_RELEASE_REQUEST_STATE. Đã xảy ra lỗi thực thi quy tắc đi. Quy tắc được định cấu hình để được thực thi trước khi bộ đệm ẩn của người dùng đầu ra được cập nhật.
- 500.100: Lỗi ASP nội bộ.
Nguyên nhân gây ra lỗi 500 là gì?
“Lỗi máy chủ nội bộ” có thể xảy ra khi máy chủ web xử lý yêu cầu. Mã trạng thái chung bao gồm mọi thứ ngoài kế hoạch có thể xảy ra trên máy chủ và ngăn trang web được tải. Lỗi máy chủ 500 có thể xảy ra do lỗi đã xảy ra trong cấu hình của máy chủ web. Dưới đây là tuyển tập các nguồn lỗi điển hình:
- Lỗi quyền: Quyền của các tệp và thư mục chính không được đặt chính xác.
- Thời gian chờ PHP : Tập lệnh cố gắng truy cập tài nguyên bên ngoài và gặp phải tình trạng hết thời gian chờ.
- Mã trong .htaccess không chính xác : Cấu trúc trong tệp .htaccess có thể sai.
- Lỗi cú pháp hoặc mã trong tập lệnh CGI / Perl: Trong một số trường hợp, tập lệnh không chính xác. Đặc biệt, các đường dẫn có thể bị lệch.
- Giới hạn bộ nhớ PHP : Một tiến trình vượt quá bộ nhớ và do đó không thể được thực thi một cách chính xác.
Trong trường hợp các trang web WordPress hoặc các hệ thống quản lý nội dung khác, việc cài đặt một tiện ích mở rộng bị lỗi hoặc không tương thích cũng có thể là nguyên nhân. Các plugin và chủ đề – đặc biệt là từ các nhà cung cấp bên thứ ba – có thể ảnh hưởng đến toàn bộ trang web.
Các nhà điều hành trang web có thể sửa lỗi 500 Internal Server Error như thế nào?
Có phải khách truy cập trang web của bạn chỉ nhìn thấy lỗi máy chủ 500 không? Là một nhà điều hành, bạn nên giải quyết vấn đề nhanh chóng vì điều này không chỉ khiến khách truy cập của bạn sợ hãi mà còn có thể có nghĩa là Google sẽ hạ xếp hạng của bạn. Trước khi bạn thực hiện hành động, trước tiên hãy kiểm tra xem máy chủ của bạn có còn đang chạy hay không. Nếu không, hãy liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn càng sớm càng tốt .
Nếu có lỗi nội bộ, bước đầu tiên là xem các tệp nhật ký . Đối với máy chủ Linux, bộ sưu tập các thông báo lỗi phải được tìm thấy tại / var / log / httpd / error_log . Bạn nên tải lại trang web để tạo lại mã lỗi HTTP 500 và quan sát cách tệp nhật ký đang được tạo. Điều này sẽ giúp bạn tìm ra nguồn gốc của lỗi khá nhanh chóng. Cũng xem xét những thay đổi nào đã được thực hiện trước đó không lâu. Trong nhiều trường hợp, các plugin được lập trình không chính xác hoặc không tương thích là nguyên nhân gây ra thông báo lỗi.
Lỗi cũng có thể xảy ra nếu bạn không đặt quyền một cách chính xác cho các tệp quan trọng . Nói chung, có ba loại quyền:
- Đọc (r)
- Viết (w)
- Thực thi (x)
Các quyền này có thể được chỉ định cho ba loại người dùng khác nhau:
- Chủ sở hữu của tệp
- Nhóm người dùng
- Tất cả những người khác
Các quyền được chỉ định bằng các chữ viết tắt r, w và x hoặc bằng các giá trị số tương ứng: 4 để đọc, 2 để viết và 1 để thực thi. Chúng được thêm vào cho từng loại người dùng và được chỉ định lần lượt: rwxr-xr-x (rwx cho chủ sở hữu, rx cho nhóm và rx cho tất cả những người khác) hoặc 755 . Cấu hình này (755) phải là cài đặt mặc định. Nếu việc gán quyền được đặt khác, có thể xảy ra lỗi. Bạn có thể thay đổi điều này bằng một lệnh:
chmod 755 filename
Nếu thay đổi này không giải quyết được sự cố, bạn cũng có thể giải phóng tất cả các quyền cho từng nhóm cho mục đích kiểm tra:
chmod 777 filename
Nhưng chỉ sử dụng cài đặt này để xác định vấn đề. Bất kỳ người dùng nào cũng được phép viết lại tệp, điều này có thể hiểu là một rủi ro bảo mật.
Tiếp theo, hãy kiểm tra (nếu việc phân phối quyền không tạo ra thông báo lỗi) nếu các tập lệnh của bạn đang chạy chính xác. Đôi khi lỗi xảy ra do các tệp script đã được di chuyển, đổi tên hoặc xóa. Ngoài ra, hãy kiểm tra tệp .htaccess : ngay cả một lỗi cú pháp – bất kể nhỏ đến mức nào – cũng có thể gây ra lỗi máy chủ nội bộ. Một lỗi phổ biến không kém là định dạng tệp .htaccess không chính xác. Điều này phải được tạo ở định dạng ASCII hoặc ANSI, không phải trong Unicode. Do đó, hãy ghi tệp trong một trình soạn thảo văn bản như Notepad, Notepad ++ hoặc Sublime Text, chứ không phải trong một chương trình xử lý văn bản như Microsoft Word. Để kiểm tra xem tệp có phải chịu trách nhiệm cho lỗi hay không, bạn có thể tạm thời đổi tên tệp và tải lại trang web. Máy chủ bây giờ sẽ không truy cập .htaccess khi tải trang web. Nếu không còn nhận được thông báo lỗi, bạn có thể sửa tệp hoặc tạo tệp mới.
Thời gian chờ cũng có thể dẫn đến thông báo lỗi. Trong trường hợp này, đó không phải là lỗi máy chủ web mà là do kết nối bị gián đoạn với nguồn bên ngoài. Các tập lệnh PHP trên trang web của bạn có được đặt để truy cập tài nguyên từ các máy chủ khác không? Có lẽ tài nguyên không còn khả dụng hoặc giao tiếp máy chủ bị gián đoạn vì một số lý do khác. Tất nhiên, một cách để loại bỏ nguồn lỗi này là không làm cho trang web của bạn phụ thuộc vào các tài nguyên bên ngoài. Nếu không được, bạn có thể tăng giới hạn thời gian cho tập lệnh của mình. Nó cũng có ý nghĩa khi triển khai xử lý lỗi hiệu quả để các lỗi trong tập lệnh PHP có thể được phát hiện chính xác hơn.
Có thể là do bộ nhớ bị quá tải? Các giới hạn bộ nhớ xác định một quá trình có thể sử dụng bao nhiêu bộ nhớ. Nếu cần nhiều RAM hơn khả dụng, điều này có thể dẫn đến lỗi máy chủ nội bộ. Bạn có thể tăng giới hạn như một giải pháp tạm thời. Để thực hiện việc này, hãy thêm một lệnh như sau vào php.ini :
memory_limit = 512M
Trong ví dụ này, bạn sẽ đặt bộ nhớ được cung cấp thành 512MB. Tuy nhiên, lưu ý rằng nhà cung cấp dịch vụ lưu trữ của bạn sẽ chỉ cho phép bạn một giới hạn tập lệnh PHP nhất định trong gói mà bạn đã đặt. Nếu bạn nhập giá trị cao hơn, máy chủ web sẽ bỏ qua giá trị đó. Việc nâng giới hạn chỉ là một giải pháp tạm thời: sau khi trang web của bạn hoạt động trở lại, bạn nên tìm nguyên nhân dẫn đến việc sử dụng RAM cao. Có khả năng cao là lỗi có thể được tìm thấy trong mã trang web của bạn.
Nếu không có phương pháp nào trong số này cung cấp cho bạn giải pháp, bạn nên liên hệ với nhà cung cấp dịch vụ lưu trữ của mình . Trước khi thực hiện, bạn có thể kiểm tra trạng thái của máy chủ: nhiều nhà cung cấp dịch vụ lưu trữ sẽ báo cáo trạng thái máy chủ của họ qua trang trạng thái hoặc thông báo cho người dùng qua mạng xã hội nếu sự cố đã xảy ra. Mẹo
IONOS cũng có một trang trạng thái nơi khách hàng của dịch vụ lưu trữ được thông báo về các sự cố hiện tại.
Người dùng Internet nên phản hồi như thế nào khi gặp lỗi HTTP 500?
Với tư cách là một khách truy cập trang web, bạn có thể làm được rất ít điều nếu gặp phải lỗi máy chủ nội bộ. Máy chủ web đặt trang web mục tiêu có cấu hình không chính xác. Điều này có nghĩa là không có lỗi trong cài đặt PC của bạn hoặc cài đặt kết nối mạng. Do đó, giải pháp đơn giản nhất cho bạn với tư cách là người dùng internet thường là tải lại trang sau . Một mặt, có thể quản trị viên web đã sửa lỗi. Điều này rất có thể xảy ra, đặc biệt là với các nhà cung cấp lớn. Mặt khác, có thể bạn đang cố truy cập trang web vào thời điểm không thuận tiện cho máy chủ web. Nếu bạn đã chọn chính xác thời điểm mà dịch vụ đang khởi động lại, thông báo lỗi sẽ được hiển thị ngay cả khi mọi thứ vẫn diễn ra như kế hoạch. Ghi chú
Nếu bạn gặp phải thông báo lỗi khi đặt hàng trực tuyến , bạn không được tải lại trang web, vì bạn không thể thấy lỗi đã xảy ra ở đâu. Có thể trang xác nhận không tải được nhưng hệ thống đã chấp nhận đơn đặt hàng của bạn. Do đó, việc làm mới trang có thể dẫn đến một đơn đặt hàng trùng lặp.
Cũng có thể số lượt xem trang tăng quá mức đã khiến máy chủ đột ngột ngừng hoạt động. Sự cố này thường được giải quyết trong vòng vài giây – trừ khi trang web bị quá tải vĩnh viễn. Nếu bạn vẫn nhận được thông báo lỗi sau khi làm mới trang, trước tiên bạn nên xóa bộ nhớ cache của trình duyệt . Trình duyệt có thể không thực sự tải lại trang web mà sử dụng bộ nhớ trong của nó. Sau khi làm trống bộ nhớ cache , hãy thử lại để truy cập trang web.
Nếu “Lỗi máy chủ nội bộ 500” vẫn được hiển thị, bạn chỉ đơn giản là không có lựa chọn nào khác, ngoài việc đợi nhà điều hành trang web giải quyết vấn đề. Tuy nhiên, có một mẹo nhỏ bạn có thể sử dụng để truy cập nội dung của trang web. Nếu bạn không phụ thuộc vào trạng thái mới nhất của trang (đang hoạt động), bạn có thể truy cập bộ đệm ẩn của Google . Nếu bạn nhập bộ đệm ẩn lệnh : theo sau là URL có liên quan trong thanh tìm kiếm của Google, bạn có thể truy cập phiên bản sớm hơn – hy vọng là vẫn hoạt động – của trang web. Tuy nhiên, bạn sẽ không thực sự lướt trang, bạn sẽ chỉ điều hướng trong bản sao trên máy chủ Google.
Nếu bạn phải quay trở lại xa hơn trong quá khứ, thì có thể bạn nên xem qua Wayback Machine . Ở đó, đôi khi bạn có thể tìm thấy các phiên bản cũ hơn của các trang web có tuổi đời hàng chục năm.
Nếu trang web bạn muốn truy cập không thể truy cập trong thời gian dài hơn, tất nhiên bạn có thể liên hệ với quản trị viên web . Họ thậm chí có thể không biết rằng khách truy cập không thể truy cập trang web của họ, đó là lý do tại sao họ sẽ rất biết ơn khi được thông báo.