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. :)
Bài viết rất hay. Mỗi khi mình gặp vấn đề gì đều bật WP_DEBUG để xem lỗi cụ thể :)
bạn ơi . mình làm việc web trên localhost bình thường..
nhưng khi đưa web lên hosting lại bị lỗi định dạng ! bạn có thể giúp mình một chút được ko ạ ?
Lỗi định dạng là sao bạn? Vui lòng cung cấp mô tả và ảnh chụp chi tiết. :P
Hiện giờ web của mình khi đăng code web lên hosting , mọi khung web và logo , hình ảnh các thứ đều bị lỗi không hiển thị được , bạn có thể check hộ mình : vanphongphamvenus.com
( đó là web của mình ạ) ( mình không thấy có đăng hình ảnh trên bình luận này được ạ)
Link các file JS, CSS và hình ảnh bị lỗi 404 hết kìa bạn. Bạn phải sửa link cho chính xác thì chúng mới hiển thị được chứ. Mà web của bạn đâu phải làm bằng WordPress? :P
Dạ vâng ạ. Mình mới được học php từ trường . Bên đó mình viết bằng sublime tex để viết thôi ạ.
Mình chưa được thành thạo ạ. Bạn có thể giúp mình một chút về lỗi này được ko ạ? Mình có thể gửi code qua email bạn được ko ạ?
Mình xin cảm ơn
Hiện tại trang web của mình cũng đang bị như vậy, mình làm theo các cách bên trên và đã sửa được. Nhưng mình vẫn chưa hiểu nguyên nhân vấn đề nằm ở đâu. Tắt tất cả plugin thì hết lỗi nhưng sau đó mình bật lại tất cả thì lại không bị lỗi nữa. Hơi khó hiểu.
Mình cũng làm như trên và biết đó là lỗi plugin seo auto link nhưng không biết sửa code kiểu gì? Bạn có thể giúp mình không? Site mình đây: http://thietkethicongnhadep.net/
Mình không dùng plugin đó nên chịu. :D Nhưng lời khuyên là không nên sử dụng plugin tạo internal links tự động. :P
Oh tại sao vậy, dùng plugin đó chỉ để chèn link nội bộ thôi mà
Nó không tự nhiên và rất dễ bị dính lỗi spam. :P
He, mình dùng lâu lắm rồi có bị đâu, với lại mình dùng ít từ khóa lắm
hình như trang của mình đang bị lỗi này thì phải
Trước bị lỗi hoài sau thay web luôn
Blog của mình thỉnh thoảng nó lại bị trắng trang 1 post hoặc 1 category. Xoá cache web đi thì vào đc nhưng đc mấy hôm thì lại bị tình trạng như vậy. Ức chế thật, chưa biết nguyên nhân là gì?
Do plugin tạo cache, cũng có thể do plugin bạn dùng để minify dữ liệu (nếu có). :)
Vậy còn cách khắc phục… Liệu có phải do thiếu bộ nhớ hay gì đó ko? Tình trạng này mới bị khoảng 1 tháng trở lại đây. Trước đây mình ko bị
Kiểm tra trong thư mục gốc xem có error_log không? :P
Mình tắt thông báo lỗi đi rồi thì phải. Để tối ktra lại xem. Bây giờ lại vào đc rồi, lúc đc lúc không, phần “dân công nghệ ” ý.
Ko biết liệu có phải do memcache ko? Để 64mb cho memcache theo bài hướng dẫn của Luân Trân liệu có đủ ?
Mình cũng thường bị lỗi trắng trang nhưng không biết cách khắc phục, cảm ơn bạn đã chia sẻ bài viết này, mình đã khắc phục được lỗi này rồi.
Bạn ơi mình dùng godady hosting, thì làm thế nào để truy cập vào file funtions vậy bạn?
Bạn truy cập thông qua FTP nhé. :P
Web của anh bị lỗi khi thêm 1 đoạn Code vào Funcions.php, sau khi nhấp save thì nó không vào được trang nữa, màn hình trắng.
Anh đã gửi Mail thông tin tài khoản, mong em sửa giúp.
Lần trước anh cũng bị lỗi này rồi, có nhờ em khắc phục nhưng không biết do lỗi thế nào.
Thanks !
Anh truy cập vào host thông qua Files Manager của cPanel, mở file functions.php lên và xóa đoạn code vừa thêm đi là được. :P
Mình cũng vừa bị lỗi y như thế này những mở file funtions.php lên thì không thấy đoạn code mới thêm vào
Mở error log thì thấy báo lỗi như thế này:
PHP Parse error: syntax error, unexpected ‘<' in /home/bluentan/public_html/wp-content/themes/motion/functions.php on line 155
Hiếu hướng dẫn mình sửa lỗi được không?
File functions.php của theme bị lỗi syntax còn gì. Do bạn gõ code không chính xác. :)
Hix nhưng mà mình không tìm thấy đoạn code mới thêm vào ở file functions, biết là tại đoạn code đó mới bị lỗi này nhưng không tìm thấy để xóa :(
Mình sửa được rồi nhé, hóa ra mở nhầm file functions :D , tks Hiếu