Hướng dẫn khắc phục lỗi trắng trang, lỗi 500 (Internal Server Error) trong website WordPress.
Bạn cài một plugin mới hoặc chỉnh sửa các tập tin của theme và sau đó phát hiện ra website của mình bị dính lỗi trắng trang hay lỗi 500? Không có bất cứ thứ gì được hiển thị trên giao diện web, cũng không thấy bất kỳ thông báo lỗi nào ngoài một màu trắng tinh? Trường hợp này còn được gọi là “White Screen of Death”, “lỗi màn hình trắng”, “lỗi trắng trang” hay đôi khi là lỗi 500 (Internal Server Error). Đừng quá lo lắng, mọi việc đều có cách giải quyết. Hôm nay, tôi sẽ hướng dẫn các bạn một số cách thông dụng nhất để khắc phục lỗi trắng trang trong WordPress. Hãy dành ra vài phút để cùng WP Căn bản tìm hiểu nhé.
Tham khảo thêm:
Một số nguyên nhân gây lỗi trắng trang
- Theme không tương thích với phiên bản WordPress.
- Plugin không tương thích với phiên bản WordPress.
- Plugin không tương thích với theme.
- Mã nguồn WordPress, theme hoặc plugin bị lỗi (lỗi code, thiếu file, dính mã độc).
- Bạn chèn thêm code tùy biến gây ra lỗi
- Lỗi file
.htaccess
Cách phát hiện nguyên nhân gây lỗi trắng trang
Có 3 cách khác nhau để làm việc này:
Phát hiện nguyên nhân gây lỗi với WP_DEBUG
Tập tin wp-config.php
trong thư mục gốc của WordPress là chìa khóa để tìm ra vấn đề mà website của bạn đang gặp phải. Tất cả những gì bạn cần làm là thêm một vài dòng mã để kích hoạt “chế độ gỡ lỗi” (debug) cho website của mình.
Bật chế độ debug một cách hiệu quả sẽ giúp hiển thị danh sách các lỗi đang tồn tại. Nếu website của bạn được cài đặt trên localhost (offline), hãy thêm dòng code sau đây vào file wp-config.php
:
define( 'WP_DEBUG', true );
Lưu ý, bạn phải chèn nó vào bên trên dòng sau:
/* That's all, stop editing! Happy blogging. */
Nếu file wp-config.php
của bạn đã có sẵn đoạn code WP_DEBUG
, bạn chỉ cần chuyển giá trị của nó từ false
sang true
là được.
Nếu website đang trực tuyến (online), bạn không nên sử dụng code bên trên bởi vì tất cả các dòng thông báo lỗi sẽ xuất hiện công khai trên web, bao gồm cả đường dẫn đến tập tin trên máy chủ web và các thông tin nhạy cảm khác. Thay vào đó, bạn hãy bật tính năng ghi thông báo lỗi vào trong một tập tin bí mật.
Để kích hoạt tính năng bản ghi lỗi (error_log) và gỡ lỗi (debug) cho một website trực tuyến, hãy thêm đoạn code sau vào tập tin wp-config.php
của bạn (ở vị trí giống như ở trên):
// Enable WP_DEBUG mode
define('WP_DEBUG', true);
// Enable Debug logging to the /wp-content/debug.log file
define('WP_DEBUG_LOG', true);
// Disable display of errors and warnings
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);
// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
define('SCRIPT_DEBUG', true);
Khi đã xong, bạn có thể kiểm tra các thông báo lỗi ngay trên front-end của website hoặc trong error_log. Bản ghi lỗi thường nằm trong thư mục wp-content, tại địa chỉ: /wp-content/debug.log. Một khi đã phát hiện được nguyên nhân gây lỗi, bạn có thể bắt đầu tìm cách sửa chữa nó (copy mã lỗi và tìm kiếm hướng dẫn trên Google chẳng hạn).
Phát hiện nguyên nhân gây lỗi bằng plugin
Rất nhiều plugin có sẵn có thể giúp bạn nhanh chóng xử lý các sự cố trên website của mình một cách dễ dàng. Nếu bạn vẫn có thể truy cập được vào bảng điều khiển WordPress (chỉ bị trắng trang ở giao diện bên ngoài), hãy cố gắng cài đặt một plugin để giúp xác định nguyên nhân gây lỗi.
- Để bật chế độ debug, hãy dùng thử plugin Debug. Còn nếu bạn muốn có thêm lựa chọn để xử lý sự cố thì Debug Bar chính là plugin mà bạn đang cần.
- Đối với WordPress multisite, có một plugin đã được thiết kế đặc biệt dành riêng cho các networks và super admin, giúp xử lý các sự cố, được gọi là Debug This. Nó sở hữu đầy đủ chức năng của hầu hết các plugin gỡ lỗi khác.
Những plugin kể trên đều đáng tin cậy và được cập nhật thường xuyên để đảm bảo khả năng tương thích cũng như sự ổn định. Một khi bạn đã chọn được plugin phù hợp, hãy tiến hành cài đặt và bắt đầu tìm kiếm các lỗi cần sửa chữa.
Kiểm tra error_log trong control panel của host
Nếu đang sử dụng cPanel, bạn có thể kiểm tra các bản ghi lỗi bằng cách click vào mục Error Log trong phần Logs.
Nếu bạn đang sử dụng Plesk, hãy click vào tab Files trên menu top => chọn tiếp mục logs trong menu bên trái, sau đó chọn file error_log từ danh sách.
Nếu bạn đang sử dụng một loại web control panel khác và không chắc chắn về nơi lưu trữ error_log, hãy kiểm tra trang Knowledge Base (KB) của nhà cung cấp hosting hoặc sử dụng Google Search để nhanh chóng để tìm ra vị trí của nó.
Cách khắc phục lỗi trắng trang trong WordPress
Dựa theo các nguyên nhân đã được liệt kê ở trên, chúng ta có thể đề ra một số giải pháp để khắc phục như sau:
Cài đặt lại WordPress, plugin hoặc theme
Trong trường hợp bạn đã xác định được nguyên nhân gây lỗi trắng trang là do WordPress, theme, plugin bị lỗi file hoặc thiếu file, hãy tiến hành cài đặt lại mã nguồn của chúng bằng phương pháp thủ công. Download mã nguồn của WordPress, theme hoặc plugin từ WordPress.org => truy cập thư mục cài đặt WordPress thông qua File Manager của cPanel/ DirectAdmin hoặc phần mềm FTP => Upload file mã nguồn đã download vào thư mục tương ứng => giải nén và ghi đè lên mã nguồn hiện tại.
Tham khảo thêm: Hướng dẫn cập nhật WordPress theo phương pháp thủ công
Sau khi truy cập được vào website, đừng quên cài đặt plugin bảo mật (chẳng hạn như Defender Security hoặc Sucuri Security) để quét xem có file nào lạ trong mã nguồn WordPress của bạn hay không nhé.
Khôi phục theme WordPress mặc định
Nếu bạn vẫn có thể truy cập được vào trang quản trị của WordPress, hãy thử đổi về theme mặc định (2020, 2021…) xem sao. Nếu lỗi trắng trang biến mất và website của bạn xuất hiện trở lại thì có nghĩa là theme mà bạn đang sử dụng có lỗi hoặc xung đột với WordPress hoặc một trong những plugin đang dùng.
Trong trường hợp ngược lại, hãy truy cập thư mục cài đặt WordPress thông qua File Manager của cPanel/ DirectAdmin hoặc phần mềm FTP => tìm tới địa chỉ /wp-content/themes/ => đổi tên thư mục của theme mà bạn đang dùng (thêm _old vào sau tên thư mục chẳng hạn). Nếu nguyên nhân là do theme, bạn sẽ có thể truy cập được vào trang quản trị của WordPress để kích hoạt theme mặc định.
Vô hiệu hóa tất cả các plugin đang kích hoạt
Truy cập thư mục cài đặt WordPress của bạn thông qua File Manager cPanel/ DirectAdmin hoặc phần mềm FTP => tìm tới địa chỉ /wp-content/plugins/ => đổi tên toàn bộ thư mục của các plugin mà bạn đã cài đặt (thêm _old vào sau tên thư mục chẳng hạn). Nếu website của bạn hoạt động bình thường trở lại, hãy thử kích hoạt lần lượt từng plugin một (bằng cách đổi tên của từng thư mục về như cũ) cho đến khi lỗi trắng trang xuất hiện. Khi đó, bạn sẽ biết plugin nào chính là nguyên nhân gây ra vấn đề.
Xóa code tùy biến gây lỗi
Nếu trước đó bạn chèn code tùy biến vào file theme dẫn đến lỗi trắng trang thì tất cả những gì bạn cần làm là truy cập thư mục cài đặt WordPress thông qua File Manager của cPanel/ DirectAdmin hoặc phần mềm FTP => tìm tới địa chỉ /wp-content/themes/ => mở file theme mà bạn đã chèn code ra => xóa đoạn code đó đi rồi lưu lại là được.
Khôi phục tập tin .htaccess
Nếu bạn có sẵn bản backup trước đó của tập tin .htaccess
, hãy upload và ghi đè lên tập tin .htaccess
hiện tại (trong thư mục cài đặt của WordPress, nằm ngang hàng với file wp-config.php
). Còn nếu không, hãy chỉnh sửa nội dung của tập tin .htaccess
về dạng “xuất xưởng” như sau:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Nếu bạn cài đặt WordPress multisite, hãy tham khảo thêm các file .htaccess
mặc định tại đây.
Tham khảo bài viết “Hiển thị file .htaccess trong cPanel một cách đơn giản” nếu bạn không tìm thấy file .htaccess
. Lưu ý, file này chỉ có trên các web server Apache và LiteSpeed/ Open LiteSpeed, không có trên web server NginX.
Lưu lại và kiểm tra xem trang web của bạn đã có thể truy cập bình thường chưa nhé.
Bạn đang sử dụng một plugin tạo cache?
Plugin tạo bộ nhớ đệm (cache) có thể là nguyên nhân gây ra lỗi trắng trang cho website của bạn, đặc biệt là khi bạn update dữ liệu hoặc chuyển host mà quên không vô hiệu hóa plugin này. Để kiểm tra xem plugin tạo cache có phải là thủ phạm hay không, các bạn chỉ cần truy cập thư mục /wp-content/plugins/, tìm và đổi tên thư mục của nó đi là được (thêm _old vào sau tên thư mục chẳng hạn).
Kiểm tra giới hạn băng thông của host
Nó đã vượt quá mức cho phép? Điều này có thể gây ra lỗi trắng trang. Nếu được, bạn nên tham khảo ý kiến của nhà cung cấp hosting để tìm giải pháp khắc phục.
Restore dữ liệu backup
Và trong hầu hết các trường hợp, cách đơn giản nhưng hiệu quả nhất để khắc phục lỗi trắng trang (nếu bạn không tìm ra nguyên nhân cụ thể) chính là restore dữ liệu từ các bản backup sẵn có. Vì vậy, đừng quên sao lưu dữ liệu website của bạn trước khi có ý định làm bất cứ điều gì nguy hiểm nhé.
Trên đây là một số phương pháp giúp bạn nhanh chóng phát hiện nguyên nhân và khắc phục lỗi trắng trang trong WordPress. Nếu bạn biết bất kỳ phương pháp nào khác, đừng quên chia sẻ nó với chúng tôi trong khung bình luận bên dưới.
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)
Cảm ơn bài viết hữu ích của bạn! Web mình vào trang chủ thì không lỗi, nhưng vào sản phẩm con vẫn bị ạ :(
Lỗi trắng trang đâu nhất thiết phải lỗi trên tất cả các trang đâu bạn. Trang nào lỗi thì debug trên trang đó thôi. :P
Chỉ mỗi trang tin tức bị trắng còn lại bình thường và các bài viết cũng bình thường là bị sao sếp? Tạo chuyên mục tin tức xong vào nó là trắng luôn mặc dù đã chèn bài viết.
1 trang hay tất cả các trang thì cách debug đều như nhau hết thôi anh. :)
Site e bị lỗi, xác định đc lỗi các dòng trong functions.php của wp-includes
Nhưng ko có chuyên môn để sửa file.
Cứ bật plugin lại bị
Nếu không có kiến thức chuyên môn thì cách đơn giản nhất để giải quyết vấn đề của bạn đó là thay thế bằng 1 plugin khác có chức năng tương tự. :D
Ngày mới tập tành làm wp, nhớ lần hỏi bác Hiếu website bị trang trắng là bị lỗi gì thì bác bảo trắng trang có nghĩa rằng hệ thống đã cạn kiện bộ nhớ, không thể truy xuất. Lỗi này có thể do một plugin không hoạt động đúng hoặc các plugin bị xung đột hoăc do vấn đề từ máy chủ hosting. Sau đó bác bày em em tắt hết plugin đúng là lại hoạt động bình thường, rồi mở lại từng plugin, cứ mở cái nào bị trắng trang tức là plugin đó chính là nguyên nhân.
Không liên quan nhưng đổi cái Gravatar nhìn cho đẹp bạn ơi. :D
Bạn có thể cho mình hỏi vấn đề không liên quan một chút không, blog mình dùng giao diện Wp Astra, các thẻ H123 mình tuỳ biến to in đậm hiển thị đẹp trên Máy tính và điện thoại Android, nhưng mình thử truy cập trên iPhone thì các thẻ H123 mỏng nhìn rất xấu.
Bạn có biết nguyên nhân và cách khắc phục không? Cám ơn bạn nhiều !!!
Bạn thử đổi font chữ xem sao nhé.
Site e bị lỗi trắng trang. Ví dụ e từ CMS chuyển qua website thì nó trắng trang nhưng load thêm lần nữa thì nó bình thường. Anh cho e hỏi a biết lỗi này không ạ? :(