Skip to content Skip to main navigation Skip to footer

Hướng dẫn khắc phục lỗi 500 Internal Server Error trên WordPress

Khi sử dụng WordPress thì một lỗi không còn xa lạ với mọi người nữa, đó là lỗi 500 Internal Server Error. Đây là một lỗi khá phổ biến đối với WordPress, lỗi này có thể xãy ra với bất kỳ website nào trên máy chủ của bạn. Và một điều làm chúng ta cảm thấy khó chịu là đây là một thông báo rất chung chung, nó không cung cấp cho chúng ta bất kỳ dữ kiện nào về lỗi cũng như cách khắc phục

Với dòng Internal Server Error luôn làm cho người dùng lầm tưởng là 100% server đang lỗi, nhưng không phải như vậy. Hãy cùng AZDIGI tìm hiểu nguyên nhân và cách để khắc phục.

I. Nguyên nhân 500 Internal Server Error trên WordPress

Sau nhiều lần hỗ trợ xử lý thì mình đúc kết ra được một số nguyên nhân phổ biến nhất cho lỗi này là

  • File .htaccess bị lỗi, hoặc một số đoạn cấu hình trong file gây lỗi
  • Bộ nhớ PHP bị giới hạn
  • Lỗi xung đột Plugin
  • Lỗi từ Theme
  • Lỗi core WordPress
  • Mã độc trên website
  • Lỗi phần mềm, dịch vụ trên máy chủ
  • Máy chủ bị quá tải (overload)

Bên trên là những lỗi phổ biến nhất mà mình rút ra được từ kinh nghiệm làm việc và xử lý. Và khi đã lọc được các nguyên nhân bạn có thể khắc phục như sau

II. Khắc phục lỗi 500 Internal Server Error trên WordPress

Vì là lỗi chung nên chúng ta không xử lý ngay được mà cần kiểm tra từng phần theo các nguyên nhân chính mà mình liệt kê ở trên.

1. Xử lý tệp .htaccess

Việc đầu tiền cần làm là hãy vô hiệu các nội dung của file .htaccess hiện tại, thay vào đó bằng nội dung mẫu mặc định của WordPress

Bạn truy cập vào bên trong mã nguồn, mở file .htaccess sau đó xoá bỏ các nội dung cũ và nhập vào nội dung mới như sau

Lưu ý: Nếu .htaccess bạn có các đoạn được cấu hình riêng biệt bạn hãy sao lưu lại để sử dụng lại.

AZDIGI Tutorial
# BEGIN WordPress

RewriteEngine On
RewriteRule ^\.well-known\/acme-challenge\/ - [L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
    

2. Bộ nhớ PHP bị giới hạn

Lỗi 500 Internal Server Error trên cũng có thể xảy ra khi bộ nhớ PHP của bạn bị cạn kiệt. Và bạn có thể tăng các giới hạn này bên trong máy chủ của mình với các giá trị như:

memory_limit
max_execution_time
max_input_vars

3. Lỗi từ Plugin

Đây là nguyên nhân mình gặp nhiều nhất cho lỗi 500 Internal Server Error này. Bạn hãy thử vô hiệu tất cả các Plugin sau đó truy cập vào website thử xem có khắc phục được không.

Nếu bạn không còn truy cập được vào admin WordPress để vô hiệu các Plugin bạn có thể vô hiệu bằng cách đổi tên thư mục plugins trong wp-contens bằng một tên khác.

4. Lỗi thư Theme

Cũng giống như Plugins, nếu bạn không vào được bên trong admin bạn hãy truy cập vào wp-contents/themes sau đó đổi tên thư mục theme cũ đi xem có thể khắc phục được lỗi hay không. Nếu sau khi đổi tên theme và bạn vào lại được bên trong admin của wordpress bạn hãy kích hoạt một theme gốc của wordpress để để sử dụng xử lý lỗi.

5. Lỗi từ core WordPress

Core WordPress cũng là một trong các nguyên nhân gây lỗi 500 mà mình từng xử lý qua. Bạn có thể sao lưu lại thư mục chứa nội dung web và thay core WordPress như sau

Bước 1: Sao lưu thư mục wp-content

Bạn hãy tải thư mục này về hoặc đổi tên thư mục trực tiếp trên host thành một tên bất kỳ

Bước 2: Xoá bỏ core WordPress hiện tại

Bạn hãy tick chọn toàn bộ các file và loại trừ thư mục wp-content và file wp-config.php ra. Sau đó xoá bỏ tất cả các file còn lại.

Bước 3: Tải core WordPress mới về sử dụng

Bạn hãy tải core WordPress mới về và giải nén ra để sử dụng. Sau khi giải nén ra bạn đừng quên di chuyển các file thư mục của core WordPress ra ngoài thư mục lưu trữ mã nguồn.

Sau đó bạn xoá bỏ thư mục wp-content mới vừa giải nén ra. Và đổi lại tên file wp-content.bak về wp-content để sử dụng.

Và bây giờ bạn hãy truy cập vào website thử và kiểm tra sau khi thay core thì web đã hoạt động trở lại chưa.

6. Mã độc trên website

Mã độc có thể coi là vấn đề rất khó xử lý, và cũng là một trong các nguyên nhân dẫn đến lỗi web. Hiện trên hosting AZDIGI có trang bị sẵn ứng dụng scan mã độc, bạn có thể đăng nhập vào hosting cPanel tìm đến mục cPGuard => VIRUS SCANNER => SCANNER LOGS sẽ thấy thông báo về mã độc như ảnh bên dưới.

Và với web bị mã độc thì chưa có một tài nguyên nào hướng dẫn xử lý triệt để. Thay vào đó bạn hãy liên hệ ngay đến các đơn vị thiết kế web uy tín để hỗ trợ xử lý và dĩ nhiên bạn sẽ phải trả một số chi phí cho việc này. Nhưng ngược lại website bạn hoạt động trở lại thì là một điều rất vui.


7. Lỗi phần mềm, dịch vụ trên máy chủ

Ngoài ra còn còn 2 lỗi cuối rất ít xảy ra đó là lỗi dịch vụ và máy chủ bị quá tải. Vì trong 1 host hoặc server có nhiều web và một số web bị 500 Internal Server Error trên thì có thể loại trừ trường hợp này ra.

Nhưng nếu tất cả các web trên host/server đồng loại bị thì bạn cần kiểm tra lại dịch vụ PHP và webserver trên máy chủ này.

8. Máy chủ bị quá tải (overload)

Khi máy chủ của bạn bị quả tải bởi các nguyên nhân như (bị ddos, xung đột phần mền ứng dụng, dịch vụ bị treo) cũng có thể xảy ra đồng loại với website. Nhưng thường lỗi này rất ít khi gặp và bạn có thể kiểm tra trạng thái máy chủ bằng lệnh top -c hoặc htop sau đó xem phần load average

Đối với cPanel bạn có thể xem trực tiếp trạng thái các dịch vụ của máy chủ ở mục Service Information. Nếu tất cả đều tick xanh ✅ thì có nghĩa máy chủ của bạn đang hoạt động rất tốt.

Hy vọng bài viết này phần nào giúp bạn hiểu hơn về lỗi 500 Internal Server Error trên WordPress và từ đó giúp bạn khắc phục được kịp thời sự cố này trên website,

Các bạn có thể tham khảo thêm các hướng dẫn sử dụng khác tại link bên dưới:

Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới: