Bạn mở website và thấy “500 Internal Server Error”, hoặc trình duyệt báo “This page isn’t working” kèm HTTP ERROR 500. Đôi khi chỉ wp-admin bị ảnh hưởng, đôi khi cả website. Thông báo gần như không nói gì, vì lỗi 500 chỉ có nghĩa máy chủ gặp một sự cố mà không mô tả được cho trình duyệt.
Tin tốt là lỗi thật gần như luôn được ghi lại ở đâu đó. Hướng dẫn này chỉ chỗ tìm lỗi và cách sửa các nguyên nhân phổ biến nhất, theo thứ tự thường tìm ra vấn đề nhanh nhất.
Trước khi bắt đầu: hãy sao lưu tệp và cơ sở dữ liệu nếu nhà cung cấp hosting cho phép, hoặc ít nhất tải một bản sao của tệp trước khi sửa. Hầu hết cách sửa bên dưới đều có thể hoàn tác, nhưng chỉ khi bạn giữ bản gốc.
Nguyên nhân gây lỗi 500 trên WordPress
Trên WordPress, lỗi 500 thường đến từ một trong các nguyên nhân sau:
- Một tệp .htaccess bị hỏng hoặc sai, thường sau khi một plugin ghi đè tệp này.
- Một plugin hoặc theme gây lỗi PHP nghiêm trọng, thường ngay sau một lần cập nhật.
- Giới hạn bộ nhớ PHP quá thấp so với việc trang đang xử lý.
- Một phiên bản PHP không khớp với những gì plugin hoặc theme hỗ trợ.
- Quyền tệp sai sau khi chuyển website hoặc tải lên thủ công.
- Giới hạn hoặc sự cố phía máy chủ mà chỉ nhà cung cấp hosting mới thấy được.
Nếu bạn thấy “There has been a critical error on this website” thay vào đó, nguyên nhân cũng là lỗi PHP, và hướng dẫn của chúng tôi về sửa lỗi nghiêm trọng trên WordPress trình bày thông báo đó chi tiết.
Bước 1: Tải lại, rồi kiểm tra chỉ một phần website bị hỏng hay không
Tải lại trang một lần và thử trong cửa sổ trình duyệt riêng tư. Một lỗi 500 đơn lẻ lúc website đông có thể chỉ là máy chủ gián đoạn tạm thời. Sau đó kiểm tra vài URL: trang chủ, một bài viết, /wp-admin/ và /wp-login.php. Nếu chỉ wp-admin lỗi, khả năng cao là plugin chỉ nạp trong bảng điều khiển. Nếu mọi trang đều lỗi, hãy bắt đầu từ .htaccess và nhật ký lỗi.
Bước 2: Đọc nhật ký lỗi máy chủ
Đường nhanh nhất tới cách sửa là thông báo lỗi thật. Hãy tìm ở các chỗ sau:
- Bảng điều khiển hosting. cPanel có Metrics → Errors, và hầu hết bảng điều khiển khác có mục “Error log” hoặc “Logs”.
- Tệp tên
error_logtrong thư mục gốc website hoặc trongwp-admin. - Nhật ký gỡ lỗi của WordPress. Bật bằng cách thêm các dòng sau vào
wp-config.php, phía trên dòng “That’s all, stop editing!”.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Tải lại trang bị lỗi, rồi mở wp-content/debug.log. Tìm các dòng bắt đầu bằng PHP Fatal error. Đường dẫn tệp trong dòng đó thường chỉ tên plugin hoặc theme gây lỗi, ví dụ wp-content/plugins/plugin-name/.... Khi xong, đặt WP_DEBUG lại thành false.
Bước 3: Đặt lại tệp .htaccess
Trên máy chủ Apache và LiteSpeed, chỉ một dòng sai trong .htaccess cũng gây lỗi 500 trên mọi trang. Kết nối bằng File Manager hoặc SFTP, tìm .htaccess trong thư mục gốc website (có thể cần hiện tệp ẩn), rồi đổi tên thành .htaccess-old.
Tải lại website. Nếu website chạy, hãy tạo tệp .htaccess mới chứa quy tắc WordPress chuẩ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
Sau đó vào Settings → Permalinks và bấm Save Changes mà không đổi gì. Nếu plugin cache hoặc plugin bảo mật đã thêm quy tắc riêng vào tệp cũ, hãy lưu lại cài đặt plugin đó để nó thêm quy tắc trở lại cho sạch.
Bước 4: Tắt plugin
Nếu nhật ký lỗi chỉ tới một plugin, hoặc bạn không xác định được, hãy tắt plugin khi không vào được wp-admin:
- Trong File Manager hoặc SFTP, mở
wp-content. - Đổi tên thư mục
pluginsthànhplugins-off. WordPress sẽ tắt mọi plugin. - Tải lại website. Nếu website chạy, đổi tên thư mục lại thành
plugins. - Đổi tên từng thư mục plugin bên trong, tải lại sau mỗi lần, cho đến khi lỗi quay lại. Plugin bạn vừa đổi tên lần cuối chính là nguyên nhân.
Nếu bạn dùng được WP-CLI, lệnh wp plugin deactivate --all làm cùng việc nhanh hơn. Khi đã biết plugin nào gây lỗi, hãy kiểm tra có bản cập nhật không, quay về phiên bản trước, hoặc liên hệ nhà phát triển kèm thông báo lỗi ở Bước 2.
Bước 5: Loại trừ theme
Nếu plugin không phải nguyên nhân, hãy đổi tên thư mục theme đang dùng trong wp-content/themes. WordPress sẽ chuyển về theme mặc định như Twenty Twenty-Four nếu theme đó đã được cài. Nếu website tải được, theme (hoặc mã thêm vào functions.php của theme) chính là vấn đề.
Bước 6: Tăng giới hạn bộ nhớ PHP
Nếu nhật ký hiện “Allowed memory size of … bytes exhausted”, trang đã hết bộ nhớ PHP. Thêm dòng này vào wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
Giới hạn PHP của nhà cung cấp hosting vẫn áp dụng ở trên mức này. Hướng dẫn của chúng tôi về sửa lỗi allowed memory size exhausted giải thích cách tăng cho đúng và cách tìm thứ đang dùng nhiều bộ nhớ.
Bước 7: Kiểm tra phiên bản PHP và quyền tệp
- Phiên bản PHP: trong bảng điều khiển hosting, xem website đang dùng phiên bản PHP nào. Nếu lỗi bắt đầu sau khi nhà cung cấp nâng PHP, plugin hoặc theme cũ có thể không hỗ trợ phiên bản mới. Chuyển tạm về phiên bản cũ sẽ xác nhận điều đó, nhưng cách sửa lâu dài là cập nhật hoặc thay đoạn mã cũ.
- Quyền: thư mục thường nên là
755và tệp là644.wp-config.phpcó thể chặt hơn, như640hoặc600. Quyền kiểu777có thể gây lỗi 500 trên một số máy chủ, và là rủi ro bảo mật trên mọi máy chủ.
Bước 8: Hỏi nhà cung cấp hosting
Nếu các bước trên không giúp được và nhật ký trống, hãy liên hệ nhà cung cấp hosting. Cho họ thời điểm chính xác lỗi xảy ra và URL. Họ thấy được nhật ký cấp máy chủ, giới hạn tài nguyên và quy tắc bảo mật (như ModSecurity) mà bạn không thấy.
Khi nào nên nhờ chuyên gia
Hãy nhờ giúp nếu nhật ký lỗi chỉ tới đoạn mã bạn không nhận ra, nếu lỗi quay lại sau mỗi lần cập nhật, nếu bạn không vào được tệp trên hosting, hoặc nếu website là cửa hàng đang mất đơn trong lúc ngừng hoạt động. Đổi tên nhầm thư mục hoặc sửa wp-config.php khi đang gấp có thể thêm một sự cố thứ hai vào sự cố ban đầu.
Muốn chúng tôi sửa giúp? Dịch vụ WordPress Fix của chúng tôi đọc nhật ký, tìm nguyên nhân thật của lỗi 500, sửa lỗi và nói rõ những gì đã thay đổi. Giá cố định $45, được xác nhận trước khi làm bất kỳ việc gì, kèm Cam kết dịch vụ. Yêu cầu sửa.
Câu hỏi thường gặp
Lỗi 500 là do tôi hay do nhà cung cấp hosting?
Cả hai đều có thể. Hầu hết lỗi 500 trên WordPress đến từ chính website: plugin, theme hoặc tệp .htaccess. Nếu nhật ký không ghi gì và các website khác trên cùng máy chủ cũng ngừng, vấn đề nhiều khả năng nằm ở phía hosting.
Lỗi 500 có làm giảm thứ hạng Google không?
Một lần gián đoạn ngắn ít khi gây hại lâu dài. Nếu Google liên tục thấy lỗi 500 trong nhiều ngày, Google có thể thu thập ít hơn và loại các trang bị ảnh hưởng khỏi kết quả tìm kiếm, vì vậy hãy sửa sớm nhất có thể.
Vì sao tôi chỉ gặp lỗi 500 trong wp-admin?
Một số plugin chỉ nạp thêm mã trong bảng điều khiển, nên một plugin hỏng có thể làm sập wp-admin trong khi trang công khai vẫn chạy. Hãy tắt plugin như ở Bước 4 để tìm ra.




