Nội dung
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
- Xem file mẫu tại đây
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.
# 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:
- Hotline 247: 028 888 24768 (Ext 0)
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com.