Lỗi 500 Internal Server Error là gì 

Lỗi 500 Internal Server Error là gì 

Lỗi 500 Internal Server Error thật đáng sợ. Dường như nó luôn xuất hiện vào thời điểm không thích hợp nhất và bạn bỗng nhiên phải loay hoay tìm cách đưa trang web của mình trở lại hoạt động. Gần như tất cả chúng ta đều đã từng trải qua điều đó.

Ngay từ khi trang web ngừng hoạt động, bạn đã mất đi lượng truy cập và khách hàng. Chưa kể đến việc nó còn ảnh hưởng tiêu cực đến thương hiệu của bạn. Vì vậy, hôm nay chúng ta sẽ cùng tìm hiểu sâu hơn về lỗi 500 Internal Server Error và hướng dẫn bạn một số cách để nhanh chóng đưa trang web của mình trở lại hoạt động.

Lỗi 500 Internal Server Error là gì?

Mã trạng thái HTTP 500 là một thông báo chung cho biết máy chủ đã gặp phải một tình huống bất ngờ khiến nó không thể thực hiện yêu cầu. Lỗi này xảy ra khi máy chủ nhận thấy có vấn đề nhưng không thể xác định cụ thể hơn về vấn đề đó.

Khi bạn truy cập một trang web, trình duyệt sẽ gửi một yêu cầu đến máy chủ host trang web đó. Máy chủ tiếp nhận yêu cầu này, xử lý và gửi lại các tài nguyên được yêu cầu (PHP, HTML, CSS, v.v…) cùng với tiêu đề HTTP.

Giao thức HTTP cũng bao gồm mã trạng thái HTTP. Mã trạng thái là một cách để thông báo cho bạn về trạng thái của yêu cầu. Nó có thể là mã trạng thái 200 có nghĩa là “Mọi thứ đều ổn” hoặc mã trạng thái 500 có nghĩa là đã xảy ra sự cố.

Có rất nhiều loại mã lỗi trạng thái 500 khác nhau (500, 501, 502, 503, 504, v.v…) và mỗi loại đều có ý nghĩa khác nhau. Trong trường hợp này, lỗi 500 Internal Server Error cho biết máy chủ đã gặp phải một tình huống bất ngờ khiến nó không thể thực hiện yêu cầu.

Các biến thể của lỗi 500 Internal Server Error

Lỗi 500 Internal Server Error trong WordPress
Lỗi 500 Internal Server Error trong WordPress

Do sự khác biệt giữa các web server, hệ điều hành và trình duyệt, lỗi 500 Internal Server Error có thể xuất hiện theo nhiều cách khác nhau. Nhưng tất cả chúng đều truyền tải cùng một thông điệp. Dưới đây chỉ là một vài trong số rất nhiều biến thể khác nhau mà bạn có thể thấy trên web:

  • “500 Internal Server Error”
  • “HTTP 500”
  • “Internal Server Error”
  • “HTTP 500 – Internal Server Error”
  • “500 Error”
  • “HTTP Error 500”
  • “500 – Internal Server Error”
  • “500 Internal Server Error. Sorry something went wrong.”
  • “500. That’s an error. There was an error. Please try again later. That’s all we know.”
  • “The website cannot display the page – HTTP 500.”
  • “Is currently unable to handle this request. HTTP ERROR 500.”

Bạn cũng có thể thấy thông báo này kèm theo:

Máy chủ gặp lỗi nội bộ hoặc cấu hình sai và không thể hoàn tất yêu cầu của bạn. Vui lòng liên hệ với quản trị viên máy chủ, webmaster@domain.com và thông báo cho họ về thời điểm xảy ra lỗi, cũng như bất kỳ hành động nào bạn có thể đã gây ra lỗi. Thông tin thêm về lỗi này có thể có trong nhật ký lỗi máy chủ.

Lỗi máy chủ nội bộ
Lỗi máy chủ nội bộ

Đôi khi, bạn có thể chỉ thấy một màn hình trắng trống. Khi xử lý lỗi 500 Internal Server Error, điều này thực sự khá phổ biến trên các trình duyệt như Firefox và Safari.

Lỗi 500 Internal Server Error trong Firefox
Lỗi 500 Internal Server Error trong Firefox

Các thương hiệu lớn hơn thậm chí có thể có thông báo lỗi 500 Internal Server Error tùy chỉnh của riêng họ, chẳng hạn như thông báo này từ Airbnb.

Lỗi 500 Internal Server Error của Airbnb
Lỗi 500 Internal Server Error của Airbnb

Ngay cả YouTube hùng mạnh cũng không an toàn trước lỗi 500 Internal Server Error.

Lỗi 500 Internal Server Error trên YouTube
Lỗi 500 Internal Server Error trên YouTube

Nguyên nhân gây ra lỗi 500 Internal Server Error là gì?

Lỗi 500 Internal Server có thể do nhiều nguyên nhân gây ra. Nếu bạn gặp phải lỗi này, rất có thể một (hoặc nhiều) trong số các yếu tố sau đây đang gây ra sự cố:

  • Cache trình duyệt.
  • Thông tin đăng nhập cơ sở dữ liệu không chính xác.
  • Cơ sở dữ liệu bị hỏng.
  • Các file bị hỏng trong cài đặt WordPress.
  • Sự cố với máy chủ cơ sở dữ liệu của bạn.
  • Các file lõi WordPress bị hỏng.
  • File .htaccess bị hỏng và giới hạn bộ nhớ PHP.
  • Sự cố với plugin và giao diện của bên thứ ba.
  • Hết thời gian chờ PHP hoặc lỗi PHP nghiêm trọng với các plugin của bên thứ ba.
  • Quyền file và thư mục không đúng.
  • Giới hạn bộ nhớ PHP trên máy chủ của bạn đã hết.
  • File .htaccess bị hỏng hoặc bị lỗi.
  • Lỗi trong script CGI và Perl.

Lỗi 500 ảnh hưởng đến SEO

Không giống như lỗi 503, được sử dụng trong chế độ bảo trì WordPress và yêu cầu Google kiểm tra lại sau, lỗi 500 có thể gây ảnh hưởng tiêu cực đến SEO nếu không được khắc phục ngay lập tức.

Nếu trang web của bạn chỉ ngừng hoạt động trong khoảng 10 phút và được thu thập dữ liệu liên tục trong nhiều lần, trình thu thập dữ liệu sẽ chỉ cần lấy trang từ cache. Hoặc Google thậm chí có thể không có cơ hội thu thập lại dữ liệu trước khi nó được sao lưu. Trong trường hợp này, bạn hoàn toàn ổn.

Tuy nhiên, nếu trang web ngừng hoạt động trong một khoảng thời gian dài, chẳng hạn như hơn 6 giờ, thì Google có thể coi lỗi 500 là một vấn đề cấp độ trang web cần được giải quyết. Điều này có thể ảnh hưởng đến thứ hạng. Nếu lo lắng về việc lỗi 500 lặp lại, bạn nên tìm hiểu lý do tại sao chúng xảy ra ngay từ đầu. Một số giải pháp dưới đây có thể hữu ích.

Cách khắc phục lỗi 500 Internal Server Error

Bạn nên bắt đầu khắc phục sự cố từ đâu khi thấy lỗi 500 Internal Server Error trên trang web của mình? Thông thường, lỗi 500 xảy ra trên chính máy chủ, nhưng theo kinh nghiệm, những lỗi này xuất phát từ hai nguyên nhân: Thứ nhất là lỗi người dùng (sự cố phía client), và thứ hai là do máy chủ gặp sự cố. Vì vậy, chúng ta sẽ cùng tìm hiểu sâu hơn về cả hai nguyên nhân.

Hãy xem qua những nguyên nhân phổ biến và cách khắc phục lỗi 500 Internal Server Error để trang web nhanh chóng hoạt động trở lại.

1. Thử load lại trang

Điều này có vẻ hơi hiển nhiên với một số người, nhưng một trong những điều dễ thực hiện nhất và đầu tiên bạn nên thử khi gặp lỗi 500 Internal Server Error là chỉ cần đợi khoảng 1 phút và load lại trang (F5 hoặc Ctrl + F5). Có thể máy chủ hoặc host bị quá tải và trang web sẽ hoạt động trở lại ngay. Trong khi chờ đợi, bạn cũng có thể nhanh chóng thử một trình duyệt khác để loại trừ khả năng đó là sự cố.

Một cách khác bạn có thể làm là dán trang web vào downforeveryoneorjustme.com. Trang web này sẽ cho bạn biết liệu trang web có bị sập hay do lỗi từ phía bạn. Một công cụ như thế này sẽ kiểm tra mã trạng thái HTTP được trả về từ máy chủ. Nếu mã trạng thái khác với 200 “Mọi thứ đều ổn” thì nó sẽ trả về thông báo ngừng hoạt động.

2. Xóa cache trình duyệt

Xóa cache trình duyệt luôn là một bước khắc phục sự cố hữu ích khác trước khi đi sâu vào việc gỡ lỗi trang web của bạn. Dưới đây là hướng dẫn về cách xóa cache trong các trình duyệt khác nhau:

3. Kiểm tra nhật ký máy chủ

Bạn cũng nên tận dụng nhật ký lỗi của mình. Điều này có thể giúp bạn nhanh chóng thu hẹp phạm vi sự cố, đặc biệt nếu sự cố xuất phát từ plugin trên trang web của mình

Kiểm tra nhật ký lỗi 
Kiểm tra nhật ký lỗi

Nếu máy chủ không có công cụ ghi nhật ký, bạn cũng có thể bật chế độ gỡ lỗi WordPress bằng cách thêm code sau vào file wp-config.php để bật chế độ ghi nhật ký:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Nhật ký thường nằm trong thư mục /wp-content.

Thư mục nhật ký lỗi WordPress (SFTP)
Thư mục nhật ký lỗi WordPress (SFTP)

Bạn cũng có thể kiểm tra các file nhật ký trong Apache và Nginx, thường nằm ở đây:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log

4. Kiểm tra lỗi khi thiết lập kết nối cơ sở dữ liệu

Lỗi 500 Internal Server Error cũng có thể xảy ra do lỗi kết nối cơ sở dữ liệu. Tùy thuộc vào trình duyệt, bạn có thể thấy các lỗi khác nhau. Tuy nhiên, cả hai đều sẽ tạo mã trạng thái HTTP 500 bất kể trong nhật ký máy chủ của bạn.

Dưới đây là ví dụ về thông báo “lỗi thiết lập kết nối cơ sở dữ liệu” trông như thế nào trên trình duyệt của bạn. Toàn bộ trang trống vì không thể truy xuất dữ liệu để hiển thị trang, do kết nối không hoạt động bình thường. Điều này không chỉ làm hỏng giao diện người dùng của trang web mà còn ngăn bạn truy cập vào bảng điều khiển WordPress.

Ví dụ về lỗi thiết lập kết nối cơ sở dữ liệu
Ví dụ về lỗi thiết lập kết nối cơ sở dữ liệu

Vậy chính xác tại sao điều này lại xảy ra? Dưới đây là một vài lý do phổ biến.

  • Vấn đề phổ biến nhất là thông tin đăng nhập cơ sở dữ liệu của bạn không chính xác. Trang web sử dụng thông tin đăng nhập riêng để kết nối với cơ sở dữ liệu MySQL.
  • Cơ sở dữ liệu WordPress của bạn bị hỏng. Với rất nhiều thành phần chuyển động với các giao diện, plugin và người dùng liên tục xóa và cài đặt chúng, đôi khi cơ sở dữ liệu bị hỏng. Điều này có thể do một bảng bị thiếu hoặc bị hỏng riêng lẻ, hoặc có thể một số thông tin đã bị xóa do vô tình.
  • Bạn có thể gặp lỗi file trong cài đặt WordPress. Điều này đôi khi thậm chí có thể xảy ra do tin tặc.
  • Sự cố với máy chủ cơ sở dữ liệu. Một số vấn đề có thể xảy ra ở phía web server, chẳng hạn như cơ sở dữ liệu bị quá tải do lưu lượng truy cập tăng đột biến hoặc không phản hồi do quá nhiều kết nối đồng thời. Điều này thực sự khá phổ biến với các máy chủ chia sẻ vì chúng sử dụng cùng một tài nguyên cho nhiều người dùng trên cùng một máy chủ.

5. Kiểm tra plugin và theme

Các plugin và theme của bên thứ ba có thể dễ dàng gây ra lỗi 500 Internal Server Error. Nhiều khi bạn sẽ thấy lỗi ngay sau khi cài đặt một ứng dụng mới hoặc chạy bản cập nhật. Đây là một lý do tại sao bạn nên sử dụng môi trường staging để cập nhật hoặc ít nhất là chạy từng bản cập nhật một. Nếu không, khi gặp lỗi 500 Internal Server Error, bạn sẽ phải loay hoay tìm ra plugin nào gây ra lỗi.

Một vài cách bạn có thể khắc phục sự cố này là vô hiệu hóa tất cả các plugin. Hãy nhớ rằng, bạn sẽ không mất dữ liệu nếu chỉ vô hiệu hóa một plugin. Nếu bạn vẫn có thể truy cập trang quản trị, một cách nhanh chóng để thực hiện việc này là duyệt đến “Plugins” và chọn “Deactivate” từ menu hành động hàng loạt. Thao tác này sẽ vô hiệu hóa tất cả các plugin của bạn.

Hủy kích hoạt tất cả các plugin
Hủy kích hoạt tất cả các plugin

6. Cài đặt lại lõi WordPress

Đôi khi các file lõi WordPress có thể bị hỏng, đặc biệt là trên các trang web cũ. Thực tế, việc chỉ tải lại lõi WordPress mà không ảnh hưởng đến plugin hoặc giao diện của bạn khá dễ dàng. Tất nhiên, hãy đảm bảo sao lưu trước khi tiếp tục.

7. Kiểm tra lỗi liên quan đến quyền

Lỗi quyền đối với file hoặc thư mục trên máy chủ cũng có thể gây ra lỗi 500 Internal Server Error. Dưới đây là một số khuyến nghị điển hình về quyền đối với file và thư mục trong WordPress:

  • Tất cả các file nên là 644 (-rw-r–r–) hoặc 640.
  • Tất cả các thư mục nên là 755 (drwxr-xr-x) hoặc 750.
  • Không bao giờ được gán quyền 777 cho bất kỳ thư mục nào, ngay cả khi upload lên các thư mục.
  • wp-config.php cũng có thể được đặt thành 440 hoặc 400 để ngăn người dùng khác trên máy chủ đọc được file đó.

Bạn có thể dễ dàng xem quyền file của mình bằng ứng dụng FTP (như hình dưới). Bạn cũng có thể liên hệ với nhóm hỗ trợ máy chủ và yêu cầu họ nhanh chóng xác thực quyền file GREP trên các thư mục và file của mình để đảm bảo chúng được thiết lập đúng cách.

Quyền file SFTP
Quyền file SFTP

8. Tăng giới hạn bộ nhớ PHP

Lỗi 500 Internal Server Error cũng có thể do giới hạn bộ nhớ PHP trên máy chủ đã hết. Bạn có thể thử tăng giới hạn. Làm theo hướng dẫn bên dưới để biết cách thay đổi giới hạn này:

Tăng giới hạn bộ nhớ PHP trong cPanel

Nếu đang chạy host sử dụng cPanel, bạn có thể dễ dàng thay đổi giới hạn này từ giao diện người dùng. Trong mục Software, hãy nhấp vào “Select PHP Version”.

Chọn phiên bản PHP
Chọn phiên bản PHP

Nhấp vào “Switch to PHP Options”.

Chuyển sang tùy chọn PHP
Chuyển sang tùy chọn PHP

Sau đó, bạn có thể nhấp vào thuộc tính memory_limit và thay đổi giá trị của nó. Sau đó, nhấp vào “Save”.

Tăng giới hạn bộ nhớ PHP trong Apache

File .htaccess là một file ẩn đặc biệt chứa nhiều thiết lập khác nhau mà bạn có thể sử dụng để điều chỉnh hành vi của máy chủ, ngay cả ở cấp độ thư mục cụ thể. Trước tiên, hãy đăng nhập vào trang web qua FTP hoặc SSH, kiểm tra thư mục gốc và xem có file .htaccess nào ở đó không.

File .htaccess
File .htaccess

Nếu có, bạn có thể chỉnh sửa file đó để thêm code cần thiết nhằm tăng giới hạn bộ nhớ PHP. Nhiều khả năng giới hạn này được đặt ở mức 64M hoặc thấp hơn, bạn có thể thử tăng giá trị này.

php_value memory_limit 128M

9. Sửa file .htaccess

Nếu bạn đang sử dụng máy chủ chạy Apache, rất có thể file .htaccess của bạn gặp sự cố hoặc bị hỏng. Làm theo các bước dưới đây để tạo lại file mới từ đầu.

Trước tiên, hãy đăng nhập vào trang web của bạn qua FTP hoặc SSH và đổi tên file .htaccess thành .htaccess_old.

Đổi tên file .htaccess
Đổi tên file .htaccess

Thông thường, để tạo lại file này, bạn chỉ cần lưu lại các liên kết tĩnh trong WordPress. Tuy nhiên, nếu đang gặp lỗi 500 Internal Server Error, rất có thể bạn không thể truy cập vào trang quản trị WordPress của mình, vì vậy đây không phải là một lựa chọn khả thi. Do đó, bạn có thể tạo một file .htaccess mới và nhập nội dung sau. Sau đó upload file lên máy chủ của bạn.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

10. Sửa lỗi mã hóa hoặc cú pháp trong script CGI/Perl

Các lỗi 500 do sự cố trong CGI và Perl đã ít phổ biến hơn trước đây rất nhiều. Tuy nhiên, điều này vẫn đáng được đề cập, đặc biệt là đối với những người dùng cPanel, nơi vẫn còn rất nhiều script CGI một cú nhấp chuột đang được sử dụng.

Dưới đây là một vài mẹo khi làm việc với các script CGI:

  • Khi chỉnh sửa, hãy luôn sử dụng trình soạn thảo plain text, chẳng hạn như Atom, Sublime hoặc Notepad++. Điều này đảm bảo chúng luôn ở định dạng ASCII.
  • Đảm bảo quyền chmod 755 được sử dụng đúng trên các script và thư mục CGI.
  • Tải các script CGI ở chế độ ASCII (bạn có thể chọn trong trình soạn thảo FTP) vào thư mục cgi-bin trên máy chủ.
  • Hãy xác nhận rằng các mô-đun Perl bạn cần cho script của mình đã được cài đặt và hỗ trợ.

11. Kiểm tra với nhà cung cấp dịch vụ host về các sự cố máy chủ

Cuối cùng, vì lỗi 500 Internal Server Error cũng có thể xảy ra do lỗi PHP hoặc lỗi PHP nghiêm trọng với các plugin của bên thứ ba, bạn luôn có thể kiểm tra với nhà cung cấp dịch vụ host của mình. Đôi khi, những lỗi này có thể khó khắc phục nếu không có chuyên gia.

Thời gian chờ PHP cũng có thể xảy ra do thiếu luồng PHP, mặc dù thông thường lỗi này gây ra lỗi 504, không phải lỗi 500. Những lỗi này xác định số lượng yêu cầu đồng thời mà trang web của bạn có thể xử lý tại một thời điểm nhất định. Nói một cách đơn giản, mỗi yêu cầu chưa được lưu trong cache cho trang web của bạn được xử lý bởi một luồng PHP.

Khi các luồng PHP đã bận rộn trên một trang web, chúng bắt đầu tạo thành một hàng đợi. Khi bạn đạt đến giới hạn luồng PHP, hàng đợi sẽ bắt đầu đẩy ra các yêu cầu cũ hơn, điều này có thể dẫn đến lỗi 500 hoặc các yêu cầu không đầy đủ.

Đánh giá bài viết này
Bình luận bài viết (0 bình luận)

All in one
Trang web này sử dụng cookie để mang đến cho bạn trải nghiệm duyệt web tốt hơn. Bằng cách duyệt trang web này, bạn đồng ý với việc chúng tôi sử dụng cookie.