Lỗi 500 Internal Server Error là gì

Website đang chạy ngon lành, tự dưng trắng xoá hiện dòng 500 Internal Server Error. Không chi tiết, không gợi ý, chỉ một câu báo lỗi chung chung. Nếu bạn đang gặp tình huống này trên WordPress, bài viết dưới đây sẽ giúp bạn xác định nguyên nhân và tự xử lý được trong phần lớn trường hợp.

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

HTTP status code 500 nghĩa là server đã gặp một lỗi nào đó trong quá trình xử lý request, nhưng không xác định được cụ thể lỗi gì. Khác với lỗi 404 (trang không tồn tại) hay 403 (bị chặn quyền truy cập), lỗi 500 giống kiểu server nói “mình biết có vấn đề, nhưng mình cũng không rõ tại sao”.

Vì lý do đó, đây là một trong những lỗi khó debug nhất. Server không trả về thông tin chi tiết nên bạn phải tự đi kiểm tra từng nguyên nhân một.

Lỗi 500 là lỗi phía server, không phải lỗi trình duyệt. Dù bạn thử Chrome, Firefox hay Safari thì kết quả vẫn giống nhau. Vấn đề nằm ở hosting, code hoặc cấu hình server.

Tuỳ trình duyệt và cấu hình server, lỗi có thể hiển thị dưới nhiều dạng: “500 Internal Server Error”, “HTTP 500”, “HTTP Error 500”, “Internal Server Error” hay đơn giản là một trang trắng. Google Chrome thường hiện “This page isn’t working”, Firefox thì hiện trang lỗi riêng. Dù hiển thị kiểu nào thì bản chất vẫn như nhau.

Cần phân biệt lỗi 500 với các lỗi server khác: lỗi 502 (Bad Gateway) là do proxy nhận response không hợp lệ, lỗi 503 là server tạm thời quá tải, lỗi 504 là timeout. Riêng lỗi 500 thì chung chung nhất, server chỉ biết “có lỗi” mà không nói rõ hơn. Đó là lý do việc sửa lỗi 500 thường phải đi theo kiểu loại trừ từng nguyên nhân.

Nguyên nhân phổ biến gây lỗi 500 trên WordPress

Nguyên nhân gây lỗi 500 trên WordPress

Trước khi đi vào sửa lỗi, bạn cần hiểu những nguyên nhân thường gặp. Dưới đây là danh sách từ phổ biến nhất đến ít gặp hơn:

  • File .htaccess bị hỏng hoặc conflict: Đây là thủ phạm số 1, chiếm khoảng 60% trường hợp lỗi 500. Chỉ cần một dòng sai cú pháp trong .htaccess là cả site sập.
  • PHP memory limit quá thấp: Khi plugin hoặc theme tiêu tốn nhiều bộ nhớ hơn giới hạn cho phép, PHP sẽ dừng script giữa chừng và trả về lỗi 500.
  • Plugin hoặc theme xung đột: Plugin mới cài, plugin vừa update, hoặc hai plugin “đá” nhau đều có thể gây ra lỗi này.
  • Core WordPress bị hỏng: File core bị thiếu hoặc hỏng sau quá trình cập nhật không hoàn chỉnh.
  • File permission sai: Files nên là 644, folders nên là 755. Nếu bị set sai (nhất là 777), server sẽ từ chối xử lý.
  • PHP version không tương thích: Plugin viết cho PHP 7.x có thể lỗi khi chạy trên PHP 8.x và ngược lại.
  • Lỗi kết nối database: Sai thông tin đăng nhập database trong wp-config.php, hoặc database bị hỏng.
  • Server quá tải: Traffic đột biến khiến server không xử lý kịp, phổ biến với shared hosting.
  • Mã độc (malware): Code độc được inject vào .htaccess, wp-config.php hoặc file theme cũng gây lỗi 500.

Luôn backup website trước khi bắt tay vào sửa bất kỳ thứ gì. Bạn có thể backup qua cPanel, dùng plugin backup, hoặc nhờ nhà cung cấp hosting hỗ trợ. Sửa mà không backup thì rủi ro rất cao.

Cách 1: Kiểm tra và sửa file .htaccess

Sửa file htaccess khắc phục lỗi 500

File .htaccess nằm ở thư mục gốc (public_html) của website, kiểm soát redirect, permalink và nhiều cấu hình server. Đây là fix đầu tiên bạn nên thử vì tỷ lệ thành công cao nhất.

Theo kinh nghiệm xử lý hàng ngàn trường hợp, khoảng 60% lỗi 500 trên WordPress liên quan đến file .htaccess. Nên thử cách này trước tiên.

Bước 1: Truy cập File Manager hoặc SSH

Đăng nhập cPanel, mở File Manager, điều hướng đến thư mục public_html. Nếu không thấy file .htaccess, bật tùy chọn Show Hidden Files trong Settings của File Manager.

Nếu dùng SSH, kết nối vào server rồi chạy:

# Di chuyển đến thư mục gốc website
cd ~/public_html
# Kiểm tra file .htaccess có tồn tại không
ls -la .htaccess

Bước 2: Đổi tên .htaccess thành .htaccess_bak

Trong File Manager, click chuột phải vào .htaccess rồi chọn Rename, đổi thành .htaccess_bak. Hoặc qua SSH:

# Đổi tên để vô hiệu hoá file .htaccess hiện tại
mv .htaccess .htaccess_bak

Bước 3: Kiểm tra website

Mở trình duyệt, truy cập lại website. Nếu site hoạt động bình thường, vậy file .htaccess cũ chính là nguyên nhân. Nếu vẫn lỗi, bỏ qua cách này và thử tiếp cách bên dưới (nhớ đổi tên file về lại .htaccess).

Bước 4: Tạo lại .htaccess từ WordPress

Nếu đã xác nhận .htaccess là nguyên nhân, bạn cần tạo file mới. Vào WordPress Dashboard, đi đến Settings > Permalinks, bấm Save Changes mà không cần thay đổi gì. WordPress sẽ tự tạo file .htaccess mới.

Trường hợp không truy cập được Dashboard, tạo file .htaccess mới bằng tay với nội dung mặc định:

# 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

Upload file này lên thư mục public_html, sau đó kiểm tra lại website.

Lưu ý: nếu site dùng plugin SEO, caching hoặc security, các plugin này có thể đã thêm rules vào .htaccess. Sau khi tạo file mới, vào Settings > Permalinks bấm Save để WordPress tự tạo lại permalink rules, rồi kiểm tra từng plugin xem có cần regenerate .htaccess rules không (ví dụ: plugin cache LiteSpeed thường cần bật lại cache rules).

Cách 2: Tăng PHP memory limit

Tăng PHP memory limit WordPress

Khi WordPress chạy nhiều plugin hoặc xử lý dữ liệu nặng, bộ nhớ PHP có thể bị cạn. Server sẽ dừng script đột ngột và trả về lỗi 500. Giải pháp là tăng giới hạn bộ nhớ PHP.

Hosting tại AZDIGI mặc định đã cấp PHP memory từ 256MB đến 512MB tuỳ gói. Nếu bạn dùng AZDIGI mà vẫn gặp lỗi memory, có thể website đang dùng plugin quá nặng hoặc có vòng lặp vô tận trong code.

Qua wp-config.php

Mở file wp-config.php ở thư mục gốc website, thêm dòng sau trước dòng “That’s all, stop editing!”:

// Tăng giới hạn bộ nhớ PHP lên 256MB
define('WP_MEMORY_LIMIT', '256M');

Nếu 256M chưa đủ, thử tăng lên 512M. Tuy nhiên nếu phải tăng quá cao thì nên kiểm tra xem plugin nào đang “ăn” memory bất thường. Một vài thủ phạm thường gặp: plugin page builder nặng, plugin backup đang chạy process, hoặc plugin bị lỗi tạo vòng lặp vô tận.

Qua .htaccess

Thêm dòng sau vào file .htaccess:

# Tăng memory limit qua .htaccess
php_value memory_limit 256M
php_value max_execution_time 300

Qua php.ini hoặc .user.ini

Tạo file php.ini (hoặc .user.ini) trong thư mục public_html với nội dung:

memory_limit = 256M
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 300

Qua cPanel (PHP Selector)

Đăng nhập cPanel, tìm mục Software, click Select PHP Version hoặc MultiPHP INI Editor. Chọn domain cần chỉnh, tìm memory_limit rồi thay đổi giá trị. Nhấn Save. Bạn có thể tham khảo thêm bài thay đổi thông số PHP bằng .htaccess trên host cPanel để biết chi tiết các thông số PHP có thể tuỳ chỉnh.

Cách 3: Kiểm tra plugin và theme

Kiểm tra plugin theme WordPress lỗi 500

Plugin và theme là nguyên nhân phổ biến thứ hai sau .htaccess. Đặc biệt nếu lỗi 500 xuất hiện ngay sau khi bạn cài plugin mới hoặc update plugin/theme, thì gần như chắc chắn đó là thủ phạm.

Một số plugin nổi tiếng hay gây conflict: các plugin caching (W3 Total Cache, WP Super Cache nếu cấu hình sai), plugin security (Wordfence, Sucuri khi viết rules vào .htaccess), và plugin page builder nặng. Không có nghĩa plugin đó xấu, chỉ là khi kết hợp với nhau hoặc với cấu hình server không phù hợp thì sẽ sinh lỗi.

Tắt tất cả plugin qua File Manager hoặc SSH

Nếu không truy cập được Dashboard, bạn cần vô hiệu hoá plugin bằng cách đổi tên thư mục plugins. Trong File Manager hoặc SSH:

# Di chuyển đến wp-content
cd ~/public_html/wp-content
# Đổi tên folder plugins để vô hiệu hoá tất cả
mv plugins plugins_disabled

Sau đó truy cập website. Nếu hết lỗi, vấn đề nằm ở plugin. Đổi tên thư mục về lại plugins rồi tiếp tục bước tiếp.

Chỉ rename folder, không xoá plugin. Xoá plugin sẽ mất cấu hình và dữ liệu liên quan.

Bật lại từng plugin một để tìm thủ phạm

Sau khi xác nhận lỗi do plugin, đổi tên folder về plugins. Lúc này tất cả plugin đã bị deactivate. Vào Dashboard, đi đến Plugins > Installed Plugins, bật lại từng plugin một. Mỗi lần bật, kiểm tra website. Khi plugin nào gây lỗi lại, bạn đã tìm ra thủ phạm.

Cách nhanh hơn nếu dùng SSH, rename từng folder plugin trong wp-content/plugins/:

# Vô hiệu hoá từng plugin bằng cách rename
cd ~/public_html/wp-content/plugins

# Ví dụ: kiểm tra plugin "example-plugin" mv example-plugin example-plugin_disabled

# Kiểm tra website, nếu hết lỗi thì plugin này là thủ phạm # Nếu vẫn lỗi, đổi tên về và thử plugin tiếp theo mv example-plugin_disabled example-plugin

Đổi theme về mặc định (Twenty Twenty-Five)

Nếu tắt hết plugin mà vẫn lỗi, thử đổi theme. Qua SSH hoặc File Manager, rename thư mục theme đang dùng:

# Rename theme hiện tại
cd ~/public_html/wp-content/themes
mv theme-dang-dung theme-dang-dung_disabled
# WordPress sẽ tự chuyển về theme mặc định (Twenty Twenty-Five)
# Nếu chưa có theme mặc định, tải từ wordpress.org rồi upload lên

Cách 4: Kiểm tra PHP version và file permissions

Kiểm tra PHP version và file permissions

Hai yếu tố ít được để ý nhưng cũng hay gây lỗi 500: phiên bản PHP không tương thích và quyền truy cập file/folder sai.

Đổi PHP version qua cPanel

Đăng nhập cPanel, tìm MultiPHP Manager hoặc Select PHP Version. Chọn domain, thử đổi sang phiên bản PHP khác. WordPress 6.x khuyến nghị PHP 8.1 hoặc 8.2. Nếu đang dùng PHP 8.2 mà lỗi, thử hạ xuống 8.1 hoặc 8.0 xem có khắc phục được không.

Sau khi đổi, xoá cache rồi kiểm tra lại website. Nếu hết lỗi thì giữ phiên bản mới, đồng thời kiểm tra plugin/theme nào không tương thích PHP version cũ. Một mẹo hay: bật WP_DEBUG trước khi đổi PHP version, log file sẽ ghi rõ function nào bị deprecated hoặc removed trong PHP mới.

Kiểm tra file permissions

Quy tắc chuẩn cho WordPress:

  • Tất cả files: 644
  • Tất cả folders: 755
  • File wp-config.php: 640 (hoặc 600 để bảo mật hơn)

Dùng SSH để sửa hàng loạt:

# Set quyền 755 cho tất cả thư mục
find ~/public_html -type d -exec chmod 755 {} \;

# Set quyền 644 cho tất cả file find ~/public_html -type f -exec chmod 644 {} \;

# Riêng wp-config.php set 640 cho bảo mật chmod 640 ~/public_html/wp-config.php

Tuyệt đối KHÔNG set permission 777 cho bất kỳ file hay folder nào. 777 nghĩa là ai cũng có thể đọc, ghi, chạy file đó. Đây là lỗ hổng bảo mật nghiêm trọng và nhiều hosting sẽ tự động block, gây lỗi 500.

Cách 5: Kiểm tra error log và liên hệ support

Kiểm tra error log và liên hệ support

Nếu các cách trên chưa giải quyết được, bước tiếp theo là đọc error log để tìm thông tin cụ thể hơn.

Bật WP_DEBUG trong wp-config.php

Mở file wp-config.php, tìm dòng define('WP_DEBUG', false); và thay bằng:

// Bật chế độ debug
define('WP_DEBUG', true);

// Ghi log ra file thay vì hiển thị trên trang define('WP_DEBUG_LOG', true);

// Tắt hiển thị lỗi trên trang (tránh lộ thông tin cho khách truy cập) define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0);

Sau khi bật debug, truy cập website để trigger lỗi, rồi kiểm tra file log tại wp-content/debug.log. File này ghi lại chi tiết lỗi PHP, tên file, dòng code gây lỗi.

Đọc error_log trong cPanel

Ngoài debug.log của WordPress, bạn có thể xem log từ phía server. Trong cPanel, vào Metrics > Errors hoặc kiểm tra file error_log trong thư mục public_html.

Những thông tin cần chú ý trong log:

  • Fatal error: Lỗi PHP nghiêm trọng, thường kèm tên file và số dòng
  • Allowed memory size exhausted: Hết bộ nhớ PHP
  • Call to undefined function: Thiếu function, thường do plugin hoặc PHP extension
  • Maximum execution time exceeded: Script chạy quá thời gian cho phép

Khi nào liên hệ nhà cung cấp hosting?

Nếu đã thử hết các cách trên mà vẫn không khắc phục được, lỗi có thể nằm ở phía server: MySQL server down, server quá tải, hoặc cấu hình server có vấn đề. Lúc này bạn cần liên hệ bộ phận hỗ trợ kỹ thuật của nhà cung cấp hosting.

AZDIGI có đội ngũ support 24/7, trung bình xử lý ticket trong 15 phút. Nếu bạn đang dùng hosting AZDIGI, cứ mở ticket hoặc chat trực tiếp, đội kỹ thuật sẽ hỗ trợ kiểm tra log server và xử lý cho bạn.

Ngoài lỗi 500, WordPress còn hay gặp một số lỗi server khác. Nếu bạn gặp lỗi Error Establishing a Database Connection, có thể tham khảo bài hướng dẫn riêng. Hoặc nếu muốn tuỳ chỉnh trang error pages trên cPanel để người dùng thấy giao diện đẹp hơn khi gặp lỗi, cũng có bài hướng dẫn chi tiết.

Bạn cũng có thể tìm hiểu thêm cách tạo custom error pages với .htaccess để trang lỗi hiển thị thông tin hữu ích thay vì chỉ một dòng báo lỗi khô khan.

Nếu bạn cần kiểm tra thêm về các rule chuyển hướng bằng .htaccess để đảm bảo không có redirect loop gây lỗi, bài tổng hợp này cũng rất hữu ích.

Cách phòng tránh lỗi 500 trong tương lai

Sửa xong lỗi rồi, nhưng quan trọng là không để nó lặp lại. Phần lớn lỗi 500 mình gặp khi hỗ trợ khách hàng đều có thể phòng tránh được nếu làm đúng từ đầu. Dưới đây là một vài thói quen giúp giảm thiểu rủi ro:

  • Update từ từ: Không bấm “Update All” cùng lúc. Update từng plugin/theme một, kiểm tra website sau mỗi lần update.
  • Dùng staging site: Test update và cài plugin mới trên bản staging trước khi áp dụng lên site chính.
  • Backup định kỳ: Cài plugin backup tự động hoặc dùng tính năng backup của hosting. Có backup thì lỡ có gì cũng khôi phục được trong vài phút.
  • Dọn plugin không dùng: Plugin cài rồi deactivate nhưng không xoá vẫn tiềm ẩn rủi ro. Không dùng thì xoá đi.
  • Chọn hosting ổn định: Hosting tốt với tài nguyên đủ dùng, hỗ trợ nhanh sẽ giảm đáng kể nguy cơ gặp lỗi 500. Hosting tại AZDIGI dùng NVMe RAID-10, LiteSpeed Enterprise, Imunify360, với PHP memory mặc định cao, giúp hạn chế lỗi liên quan đến tài nguyên.
  • Giám sát tài nguyên: Theo dõi CPU, RAM, disk space qua cPanel. Nếu thấy thường xuyên chạm ngưỡng, cân nhắc nâng cấp gói hosting.
  • Kiểm tra .htaccess định kỳ: Một số plugin tự thêm rules vào .htaccess. Lâu ngày file này phình to, rules conflict nhau. Nên review file này mỗi vài tháng, xoá các rules của plugin đã gỡ.
  • Giữ PHP version cập nhật: Chạy PHP quá cũ vừa chậm vừa thiếu bảo mật. Kiểm tra compatibility trước rồi nâng lên PHP 8.1 hoặc 8.2 cho hiệu năng tốt hơn.

Nếu bạn đang cần một giải pháp hosting ổn định cho WordPress, Pro Platinum Hosting của AZDIGI dùng Intel Xeon Platinum 3.9GHz, NVMe RAID-10, LiteSpeed Enterprise với PHP memory mặc định 256MB-512MB. Datacenter đặt tại TP.HCM, hỗ trợ kỹ thuật 24/7. Gói phổ biến nhất từ 95.000đ/tháng cho 5 website.

Câu hỏi thường gặp

Lỗi 500 có phải do hosting không?

Có thể, nhưng không phải lúc nào cũng vậy. Khoảng 70% trường hợp lỗi 500 trên WordPress là do plugin, theme hoặc file .htaccess. Chỉ khoảng 30% liên quan đến server (quá tải, MySQL down, cấu hình sai). Nên kiểm tra các nguyên nhân phía WordPress trước, nếu không khắc phục được mới liên hệ hosting.

Lỗi 500 có ảnh hưởng SEO không?

Có. Nếu Googlebot truy cập website mà gặp lỗi 500 liên tục, Google sẽ giảm tần suất crawl và có thể hạ thứ hạng. Khác với lỗi 503 (tạm thời bảo trì), lỗi 500 không có tín hiệu “quay lại sau” nên Google có thể đánh giá site không ổn định. Cần khắc phục càng sớm càng tốt.

Làm sao tránh lỗi 500 trong tương lai?

Backup thường xuyên, update plugin/theme từng cái một thay vì update hàng loạt, dùng staging site để test trước, chọn hosting có tài nguyên phù hợp, và dọn bỏ plugin không sử dụng. Giám sát tài nguyên server (CPU, RAM, disk) qua cPanel cũng giúp phát hiện sớm trước khi lỗi xảy ra.

Lỗi 500 và lỗi 502, 503, 504 khác nhau thế nào?

Lỗi 500 là lỗi chung chung của server, không rõ nguyên nhân cụ thể. Lỗi 502 (Bad Gateway) là proxy/gateway nhận response không hợp lệ từ server phía sau. Lỗi 503 (Service Unavailable) là server đang quá tải hoặc bảo trì tạm thời. Lỗi 504 (Gateway Timeout) là proxy/gateway chờ response từ server quá lâu. Mỗi lỗi có cách xử lý riêng.

Hosting nào ít bị lỗi 500?

Hosting có cấu hình tốt, tài nguyên đủ dùng, không oversell (nhồi quá nhiều website trên 1 server) sẽ ít bị lỗi 500. Các gói Business Hosting hoặc Cloud Server thường ổn định hơn Shared Hosting. AZDIGI cung cấp hosting với NVMe RAID-10, LiteSpeed, PHP memory mặc định 256MB-512MB, giúp giảm thiểu lỗi liên quan đến tài nguyên.

Chia sẻ:
Bài viết đã được kiểm duyệt bởi AZDIGI Team

Về tác giả

Thạch Phạm

Thạch Phạm

Đồng sáng lập và Giám đốc điều hành của AZDIGI. Có hơn 15 năm kinh nghiệm trong phổ biến kiến thức liên quan đến WordPress tại thachpham.com, phát triển website và phát triển hệ thống.

Hơn 10 năm phục vụ 80.000+ khách hàng

Bắt đầu dự án web của bạn với AZDIGI