DNS RobotDNS Propagation Checker
Trang ChủDNSWHOISIPSSL
DNS RobotDNS Propagation Checker

Công cụ kiểm tra DNS thế hệ mới

Chính Sách Bảo MậtĐiều Khoản Dịch VụVề Chúng TôiBlogLiên hệ

Công Cụ DNS

Tra Cứu DNSTên Miền Sang IPTra Cứu NSTra Cứu MXTra Cứu CNAMEXem tất cả

Công Cụ Email

Kiểm Tra Bản Ghi SPFKiểm Tra DMARCKiểm Tra DKIMKiểm Tra SMTPPhân Tích Header EmailXem tất cả

Công Cụ Website

Tra Cứu WHOISKiểm Tra Tên MiềnTìm Tên Miền PhụPhát Hiện CMSPhân Tích Liên KếtXem tất cả

Công Cụ Mạng

Công Cụ PingTracerouteKiểm Tra CổngKiểm Tra Header HTTPKiểm Tra Chứng Chỉ SSLXem tất cả

Công Cụ IP

Tra Cứu IPIP Của Tôi Là GìKiểm Tra Danh Sách Đen IPIP Sang HostnameTra Cứu ASNXem tất cả

Công Cụ Tiện Ích

Quét Mã QRTạo Mã QRDịch Mã MorseChuyển Đổi Văn Bản Sang Nhị PhânTạo Chữ NhỏXem tất cả
© 2026 DNS Robot. Phát triển bởi: ❤ Shaik Brothers
Tất cả hệ thống hoạt động bình thường
Made with
Home/Blog/Lỗi HTTP 500 Internal Server Error: Nguyên nhân và Cách khắc phục

Lỗi HTTP 500 Internal Server Error: Nguyên nhân và Cách khắc phục

Shaik VahidFeb 27, 20269 min read
Hướng dẫn sửa lỗi HTTP 500 internal server error với màn hình lỗi máy chủ và các bước debug từng bước
Hướng dẫn sửa lỗi HTTP 500 internal server error với màn hình lỗi máy chủ và các bước debug từng bước

Key Takeaway

Lỗi HTTP 500 có nghĩa là máy chủ gặp một tình trạng bất ngờ và bị crash khi xử lý yêu cầu của bạn. Nếu bạn là người truy cập, hãy tải lại trang và thử lại sau. Nếu bạn là quản trị viên website, hãy kiểm tra nhật ký lỗi trước tiên -- sau đó điều tra .htaccess, quyền truy cập tệp, giới hạn bộ nhớ PHP, plugin và kết nối cơ sở dữ liệu để tìm và khắc phục nguyên nhân gốc.

Lỗi HTTP 500 là gì?

Lỗi HTTP 500 (Internal Server Error) là mã trạng thái phía máy chủ cho biết web server gặp một tình trạng bất ngờ khiến nó không thể thực hiện yêu cầu của bạn. Đây là lỗi máy chủ chung nhất -- cách máy chủ nói rằng 'có gì đó bị hỏng, nhưng tôi không biết chính xác là gì.'

Theo đặc tả HTTP (RFC 9110, Mục 15.6.1), phản hồi 500 được sử dụng khi máy chủ không tìm thấy mã trạng thái 5xx cụ thể hơn để mô tả vấn đề. Khác với lỗi 503 (báo hiệu tình trạng tạm thời), lỗi 500 không cho biết vấn đề là tạm thời hay vĩnh viễn.

Điểm quan trọng là lỗi 500 hầu như luôn do bug, cấu hình sai hoặc crash trong mã phía máy chủ -- không phải do bất kỳ điều gì người truy cập làm sai. Việc khắc phục phải đến từ chủ website hoặc quản trị viên máy chủ.

Note

500 là lỗi phía máy chủ (nhóm 5xx). Điều này có nghĩa vấn đề nằm ở máy chủ, không phải ở phía bạn. Nếu bạn là người truy cập, trình duyệt, thiết bị hoặc kết nối internet của bạn thường không có vấn đề gì.

Lỗi 500 trông như thế nào

Lỗi 500 hiển thị khác nhau tùy thuộc vào web server, nhà cung cấp hosting và CMS. Dưới đây là những thông báo phổ biến nhất mà bạn sẽ gặp.

  • 500 Internal Server Error -- thông báo chuẩn

  • HTTP Error 500 -- phổ biến trên thanh địa chỉ trình duyệt

  • Internal Server Error -- văn bản chung không có mã trạng thái

  • The server encountered an internal error or misconfiguration -- thông báo mặc định của Apache

  • 500 Internal Server Error -- nginx -- trang lỗi tối giản của Nginx

  • There has been a critical error on this website -- WordPress (từ phiên bản 5.2)

  • HTTP Error 500.19 -- Internal Server Error -- IIS với mã trạng thái phụ

  • 500. That's an error. -- trang lỗi riêng của Google

Nguyên nhân phổ biến của lỗi HTTP 500

Lỗi 500 có thể bị kích hoạt bởi hàng chục vấn đề khác nhau phía máy chủ. Dưới đây là những nguyên nhân phổ biến nhất, được xếp theo tần suất xuất hiện.

  • Tệp .htaccess bị lỗi -- Một ký tự đặt sai hoặc chỉ thị không hợp lệ trong .htaccess sẽ làm crash Apache ngay lập tức. Đây là nguyên nhân số 1 trên hosting chia sẻ.

  • Lỗi PHP nghiêm trọng -- Lỗi cú pháp, exception không được xử lý hoặc gọi hàm chưa định nghĩa sẽ dừng thực thi script và tạo ra lỗi 500.

  • Hết giới hạn bộ nhớ PHP -- Script vượt quá memory_limit (mặc định 128M) sẽ crash mà không có cảnh báo. Xử lý hình ảnh lớn và truy vấn cơ sở dữ liệu phức tạp là nguyên nhân thường gặp.

  • Quyền truy cập tệp sai -- Tệp nên là 644, thư mục là 755. Quyền hạn quá nghiêm ngặt (hoặc 777 nguy hiểm) đều gây vấn đề.

  • Xung đột plugin hoặc theme -- Plugin mới cập nhật hoặc không tương thích có thể làm crash toàn bộ ứng dụng. Đây là nguyên nhân phổ biến nhất đặc thù cho WordPress.

  • Lỗi kết nối cơ sở dữ liệu -- Thông tin đăng nhập sai, máy chủ cơ sở dữ liệu bị crash hoặc vượt giới hạn kết nối khiến ứng dụng không thể chạy.

  • Script hết thời gian -- Script chạy lâu vượt quá max_execution_time (mặc định 30 giây) và bị máy chủ dừng.

  • Tệp lõi CMS bị hỏng -- Cập nhật lỗi hoặc truyền tệp bị gián đoạn để lại các tệp quan trọng không đầy đủ.

  • Tiến trình PHP-FPM crash -- Các tiến trình worker chết do vấn đề bộ nhớ hoặc đạt giới hạn pm.max_children khiến Nginx trả về lỗi 500.

  • Cấu hình máy chủ sai -- Phiên bản PHP sai, cài đặt virtual host không hợp lệ hoặc server block Nginx lỗi đều kích hoạt lỗi 500.

  • Ổ đĩa đầy -- Khi máy chủ hết dung lượng ổ đĩa, nó không thể ghi nhật ký hoặc tệp tạm, gây ra crash.

  • Lỗi script CGI/Perl -- Chế độ tệp sai (nhị phân thay vì ASCII), kết thúc dòng không đúng hoặc thiếu module.

Cách khắc phục lỗi 500 (Dành cho người truy cập)

Nếu bạn thấy lỗi 500 trên trang web của người khác, vấn đề nằm ở phía máy chủ -- không phải của bạn. Tuy nhiên, có một vài điều bạn có thể thử trước khi bỏ cuộc.

  • Tải lại trang -- Đợi 30 giây, sau đó nhấn F5 hoặc Ctrl+R (Cmd+R trên Mac). Nhiều lỗi 500 do máy chủ bị trục trặc nhất thời và tự khắc phục.

  • Tải lại cứng -- Nhấn Ctrl+Shift+R (Cmd+Shift+R trên Mac) để bỏ qua bộ nhớ đệm trình duyệt và tải bản sao hoàn toàn mới.

  • Xóa bộ nhớ đệm và cookie trình duyệt -- Vào cài đặt trình duyệt và xóa các tệp đã lưu cache. Dữ liệu cache bị hỏng đôi khi có thể gây ra vấn đề hiển thị.

  • Thử chế độ ẩn danh -- Mở cửa sổ riêng tư/ẩn danh để loại trừ các tiện ích mở rộng trình duyệt hoặc trạng thái cache gây vấn đề.

  • Kiểm tra trang web có bị sập cho tất cả mọi người không -- Sử dụng công cụ HTTP Headers Checker của DNS Robot để xác minh mã trạng thái phản hồi của máy chủ.

  • Thử lại sau -- Vì vấn đề nằm ở phía máy chủ, chủ website cần khắc phục. Đợi 15-30 phút và kiểm tra lại.

  • Liên hệ chủ website -- Nếu lỗi kéo dài hàng giờ, hãy thông báo cho họ qua trang liên hệ hoặc mạng xã hội.

Cách 1: Kiểm tra nhật ký lỗi máy chủ

Nhật ký lỗi là công cụ debug quan trọng nhất cho lỗi 500. Chúng cho bạn biết chính xác điều gì đã xảy ra sai, bao gồm đường dẫn tệp, số dòng và thông báo lỗi. Luôn kiểm tra nhật ký trước khi thử bất kỳ điều gì khác.

bash
# Apache error log
tail -100 /var/log/apache2/error.log

# Nginx error log
tail -100 /var/log/nginx/error.log

# PHP-FPM error log
tail -100 /var/log/php-fpm/error.log

# WordPress debug log (if WP_DEBUG_LOG enabled)
tail -100 /path/to/wordpress/wp-content/debug.log

Tip

Với WordPress, bật ghi nhật ký debug bằng cách thêm các dòng sau vào wp-config.php: define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); -- lỗi sẽ được lưu vào wp-content/debug.log mà không hiển thị cho người truy cập.

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

Tệp .htaccess bị hỏng hoặc cấu hình sai là nguyên nhân phổ biến nhất gây lỗi 500 trên máy chủ Apache. Một lỗi đánh máy, chỉ thị không được hỗ trợ hoặc RewriteRule sai có thể làm sập toàn bộ trang web.

Cách kiểm tra nhanh nhất là tạm thời đổi tên tệp. Nếu trang web tải được sau khi đổi tên, .htaccess chính là vấn đề.

bash
# Rename to disable .htaccess
mv .htaccess .htaccess_backup

# If site loads, regenerate a clean .htaccess
# For WordPress, go to Settings > Permalinks and click Save

Warning

Nếu bạn gần đây thêm các quy tắc tùy chỉnh (chuyển hướng, header bảo mật, caching), những quy tắc đó có thể là vấn đề. Thêm lại từng cái một để xác định chỉ thị gây lỗi.

Cách 3: Sửa quyền truy cập tệp

Quyền truy cập tệp sai ngăn web server đọc hoặc thực thi tệp. Quyền chuẩn là 644 cho tệp và 755 cho thư mục. Không bao giờ đặt quyền 777 -- đó là rủi ro bảo mật và nhiều nhà cung cấp hosting chặn nó.

bash
# Set correct directory permissions
find /path/to/webroot -type d -exec chmod 755 {} \;

# Set correct file permissions
find /path/to/webroot -type f -exec chmod 644 {} \;

# WordPress wp-config.php (extra security)
chmod 440 wp-config.php

Cách 4: Tăng giới hạn bộ nhớ và thời gian thực thi PHP

Script PHP vượt giới hạn bộ nhớ hoặc thời gian thực thi tối đa sẽ bị máy chủ dừng mà không có cảnh báo, dẫn đến lỗi 500. Giới hạn memory_limit mặc định 128M và max_execution_time 30 giây thường quá thấp cho các ứng dụng phức tạp.

Bạn có thể tăng các giới hạn này bằng nhiều cách tùy theo cấu hình máy chủ.

bash
# Option 1: php.ini (best method)
memory_limit = 256M
max_execution_time = 300

# Option 2: .htaccess (Apache only)
php_value memory_limit 256M
php_value max_execution_time 300

# Option 3: .user.ini (FastCGI/Nginx)
memory_limit = 256M

# Option 4: wp-config.php (WordPress)
define( 'WP_MEMORY_LIMIT', '256M' );

Cách 5: Tắt plugin và theme (CMS)

Nếu bạn đang chạy WordPress, Joomla hoặc CMS khác, plugin hoặc theme bị lỗi là một trong những nguyên nhân phổ biến nhất gây lỗi 500. Cách kiểm tra nhanh nhất là tắt tất cả plugin cùng lúc, sau đó bật lại từng cái một.

bash
# Disable all WordPress plugins (via file system)
cd /path/to/wordpress/wp-content
mv plugins plugins_disabled

# Or use WP-CLI
wp plugin deactivate --all

# Switch to default theme
wp theme activate twentytwentyfour

Tip

Nếu tắt plugin khắc phục được lỗi, hãy bật lại từng cái một và tải lại trang sau mỗi lần bật. Plugin nào làm lỗi 500 quay lại chính là thủ phạm.

Cách 6: Kiểm tra kết nối và sửa chữa cơ sở dữ liệu

Lỗi 500 có thể xảy ra khi ứng dụng không thể kết nối đến cơ sở dữ liệu. Điều này xảy ra khi thông tin đăng nhập sai, máy chủ cơ sở dữ liệu bị sập hoặc các bảng bị hỏng.

Trước tiên hãy xác minh thông tin đăng nhập cơ sở dữ liệu trong tệp cấu hình (wp-config.php cho WordPress, .env cho Laravel). Sau đó kiểm tra kết nối và sửa chữa các bảng bị hỏng nếu cần.

bash
# Test MySQL connection
mysql -u username -p -h localhost database_name -e "SELECT 1;"

# Repair and optimize all tables
mysqlcheck -u username -p --auto-repair --optimize database_name

# WordPress: add to wp-config.php, then visit /wp-admin/maint/repair.php
define( 'WP_ALLOW_REPAIR', true );

Cách 7: Kiểm tra tính tương thích phiên bản PHP

Chạy mã viết cho phiên bản PHP cũ trên phiên bản PHP mới (hoặc ngược lại) sẽ kích hoạt lỗi nghiêm trọng. Các hàm bị loại bỏ, hành vi mặc định thay đổi và tính năng bị gỡ bỏ là những thủ phạm phổ biến sau khi nâng cấp PHP.

Kiểm tra phiên bản PHP hiện tại và so sánh với yêu cầu của ứng dụng.

bash
# Check PHP version
php -v

# List loaded PHP modules
php -m

# Check current memory limit
php -i | grep memory_limit

Note

Nếu lỗi 500 bắt đầu ngay sau khi nâng cấp PHP, hãy chuyển về phiên bản trước qua bảng điều khiển hosting và kiểm tra mã tương thích trước khi nâng cấp lại.

Cách 8: Kiểm tra dung lượng ổ đĩa

Khi máy chủ hết dung lượng ổ đĩa, nó không thể ghi tệp nhật ký, tệp tạm hoặc dữ liệu phiên -- điều này gây lỗi 500. Đây thường bị bỏ qua nhưng lại khá phổ biến, đặc biệt khi tệp nhật ký tăng không kiểm soát.

bash
# Check disk usage
df -h

# Find large files eating disk space
du -sh /var/log
du -sh /tmp

# Clear old log files if needed
truncate -s 0 /var/log/nginx/error.log

So sánh 500 với 502, 503 và 504: Sự khác biệt là gì?

Điểm khác biệt chính: 500 = máy chủ bị hỏng nội bộ. 502 = proxy nhận dữ liệu rác từ backend. 503 = máy chủ vẫn hoạt động nhưng đang bận. 504 = proxy bỏ cuộc chờ đợi. Bạn có thể kiểm tra chính xác mã trạng thái máy chủ trả về bằng HTTP Headers Checker của DNS Robot.

Mã lỗiTênÝ nghĩaNguyên nhân phổ biến
500Internal Server ErrorBản thân máy chủ bị crash hoặc ném ra exception không xử lýLỗi PHP nghiêm trọng, .htaccess hỏng, hết bộ nhớ
502Bad GatewayProxy nhận phản hồi không hợp lệ từ backendPHP-FPM crash, backend không chạy, socket bị đóng
503Service UnavailableMáy chủ tạm thời bị quá tải hoặc đang bảo trìĐột biến lưu lượng, bảo trì có kế hoạch, giới hạn tài nguyên
504Gateway TimeoutProxy hết thời gian chờ đợi backend phản hồiTruy vấn cơ sở dữ liệu chậm, script chạy lâu, upstream không phản hồi

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

Lỗi 500 có tác động SEO nghiêm trọng hơn hầu hết các lỗi HTTP khác. Dưới đây là những điều bạn cần biết.

Xóa chỉ mục có thể bắt đầu trong 2 ngày. John Mueller của Google đã xác nhận rằng lỗi 500 kéo dài có thể khiến URL bị xóa khỏi chỉ mục chỉ trong hai ngày. Điều này nhanh hơn lỗi 503, vốn được Google coi là tạm thời.

Lỗi 500 lãng phí ngân sách thu thập. Khác với lỗi 404 (Google cuối cùng sẽ ngừng thu thập lại), lỗi 500 là mơ hồ -- trang có thể quay lại -- nên Googlebot tiếp tục thử lại mạnh mẽ. Điều này lãng phí ngân sách thu thập cho các trang không trả về gì.

Thứ hạng giảm nhanh nhưng phục hồi được. Khi bạn khắc phục vấn đề, Google thường khôi phục thu thập trong vài ngày. Tuy nhiên, phục hồi thứ hạng có thể mất vài tuần -- thứ hạng không quay lại ngay lập tức.

Sử dụng 503 cho bảo trì có kế hoạch, không bao giờ dùng 500. Phản hồi 503 được cấu hình đúng với header Retry-After sẽ báo Google quay lại sau mà không xóa trang. Lỗi 500 không gửi tín hiệu nào như vậy.

Warning

Nếu hơn 1% URL được thu thập trả về lỗi 500, Google coi đó là vấn đề toàn trang web. Hãy theo dõi báo cáo Phạm vi bao phủ trong Google Search Console tại mục 'Server error (5xx)' thường xuyên.

Cách phòng ngừa lỗi 500

Phòng bệnh hơn chữa bệnh. Hãy làm theo các phương pháp tốt nhất dưới đây để giảm thiểu rủi ro lỗi 500 trên website của bạn.

  • Thiết lập giám sát uptime -- Sử dụng các công cụ như UptimeRobot hoặc Pingdom để kiểm tra trang web mỗi 1-5 phút. Nhận cảnh báo ngay khi lỗi 500 xảy ra.

  • Luôn kiểm tra thay đổi trên staging -- Không bao giờ triển khai trực tiếp lên production. Kiểm tra cập nhật plugin, nâng cấp PHP và thay đổi cấu hình trên môi trường staging trước.

  • Sử dụng kiểm soát phiên bản (Git) -- Commit mọi thay đổi để bạn có thể hoàn tác triển khai lỗi ngay lập tức chỉ với một lệnh.

  • Xử lý lỗi đúng cách -- Bọc các truy vấn cơ sở dữ liệu và lời gọi API trong khối try-catch. Ghi lại đầy đủ stack trace phía máy chủ cho mọi lỗi.

  • Giám sát dung lượng ổ đĩa và tài nguyên máy chủ -- Thiết lập cảnh báo khi dung lượng ổ đĩa vượt 80%, CPU cao và áp lực bộ nhớ.

  • Cập nhật phần mềm thường xuyên -- Phiên bản CMS, plugin và phần mềm máy chủ lỗi thời chứa các bug đã biết gây crash.

  • Duy trì sao lưu tự động -- Kiểm tra quy trình khôi phục thường xuyên. Bản sao lưu chưa bao giờ kiểm tra thì không phải là bản sao lưu.

  • Đặt giới hạn PHP phù hợp -- Cấu hình memory_limit và max_execution_time dựa trên khối lượng công việc thực tế, không phải giá trị mặc định.

  • Sử dụng CI/CD pipeline -- Tự động hóa kiểm tra trước khi triển khai. Nếu kiểm tra lỗi, triển khai sẽ không được thực hiện.

Kiểm tra phản hồi máy chủ của bạn

Sử dụng HTTP Headers Checker của DNS Robot để xác minh mã trạng thái máy chủ trả về và kiểm tra tất cả header phản hồi.

Try HTTP Headers Checker

Frequently Asked Questions

Lỗi HTTP 500 (Internal Server Error) có nghĩa là web server gặp một tình trạng bất ngờ khiến nó không thể hoàn thành yêu cầu của bạn. Đây là lỗi chung báo hiệu có gì đó đã crash phía máy chủ, nhưng máy chủ không thể xác định chính xác nguyên nhân.

Related Tools

Http HeadersPort CheckerDns LookupPing

Table of Contents

  • Lỗi HTTP 500 là gì?
  • Lỗi 500 trông như thế nào
  • Nguyên nhân phổ biến của lỗi HTTP 500
  • Cách khắc phục lỗi 500 (Dành cho người truy cập)
  • Cách 1: Kiểm tra nhật ký lỗi máy chủ
  • Cách 2: Kiểm tra và sửa .htaccess
  • Cách 3: Sửa quyền truy cập tệp
  • Cách 4: Tăng giới hạn bộ nhớ và thời gian thực thi PHP
  • Cách 5: Tắt plugin và theme (CMS)
  • Cách 6: Kiểm tra kết nối và sửa chữa cơ sở dữ liệu
  • Cách 7: Kiểm tra tính tương thích phiên bản PHP
  • Cách 8: Kiểm tra dung lượng ổ đĩa
  • So sánh 500 với 502, 503 và 504: Sự khác biệt là gì?
  • Lỗi 500 ảnh hưởng đến SEO như thế nào
  • Cách phòng ngừa lỗi 500
  • FAQ