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. :)
trang web vẫn bình thường từ khi mình up plugin elementer-pro lên thì bị lỗi trang , k phải bị xung đột các plugin nhưng mình k thể tìm cách nào để gỡ được hoặc xóa nó đi . Bạn có thể giúp mình không ?
Cái này là xung đột rồi chứ còn gì nữa bạn. Bạn check thử xem trong error_log có ghi chính xác lỗi do đâu không?
bạn ơi, trang web mình cũng bị lỗi mà không biết vì sao, code bên mình thì bảo do bên host, cứ yêu cầu bên host backup lại thời gian trước. Bạn kiểm tra giúp mình xem bị sao, parisvietnam.vn/tap-chi/
cám ơn bạn rất nhiều. Mình hoang mang quá
cảm ơn bạn! trong hằng hà các nguyên nhân bạn đưa ra mình cũng mò ra đc 1 lỗi :)
Chào Anh,mình dùng theme newspaper tải trực tiếp từ nhà cung cấp nhưng không active. Mình không thể dùng chung được với Plugin Yoast Seo thì không biết bị lỗi gì vậy bạn
Theme bạn dùng đã phải là phiên bản mới nhất chưa? Cả Yoast SEO nữa?
Mình đang gặp lỗi này:
“Warning!
The file /home/benhlyvemat/domains/benhvienmat.vn/public_html/wp-content/advanced-cache.php already exists. Please manually delete it before using this plugin.”
Làm ơn hướng dẫn mình xử lý được không?
Bạn vào xóa cái file advanced-cache.php đó đi là được mà.
Bạn hướng dẫn giúp mình cách xóa file đó được không? Mình không biết cách :(
Bạn vào host qua File Manager của cPanel/ DirectAdmin hoặc phần mềm FTP rồi tìm tới thư mục /wp-content/ là thấy file advanced-cache.php mà.
Hi bác Hiếu!
Site mình bị lỗi hiển thị blog post như thế này: https://hanhtrang.vn/top-3-khach-san-can-biet-khi-den-du-lich-tai-singapore/. Bác xem làm sao fix giúp mình. Site mình sử dụng thrivethemes. Thanks
Mình không hiểu bạn đang nói đến lỗi gì?
bây giờ nó bị lỗi khác rồi anh ơi: https://onlinegoing.net
Anh cho em hỏi chút ạ.
Em chỉnh sửa thư mục nên bị lỗi trắng trang thì khắc phục thế nào được ạ?
Em cảm ơn anh nhiều ạ.
Bạn sửa thư mục gì mà bị lỗi trắng trang? Nếu có backup thì khôi phục lại từ đầu là được mà. :)
Mình cũng hay bị trắng trang, xem errorlog thì thấy bị lỗi này ko biết bị gì mà ngày nào file errorlog cũng ra 1 mớ như này :( plugin mình xài là wprocket, yoast seo, themes newspaper, Trung Hiếu xem dùm mình với, cám ơn nhiều !
[05-May-2018 04:25:09 UTC] PHP Warning: Invalid argument supplied for foreach() in /home/xxxx/public_html/domain.com/wp-includes/class-wp-hook.php on line 277
[05-May-2018 04:25:09 UTC] PHP Warning: next() expects parameter 1 to be array, null given in /home/xxxx/public_html/domain.com/wp-includes/class-wp-hook.php on line 291
[05-May-2018 04:25:09 UTC] PHP Warning: current() expects parameter 1 to be array, null given in /home/xxxx/public_html/domain.com/wp-includes/class-wp-hook.php on line 275
1. Theme của bạn là theme mua hay theme lậu?
2. Bạn đang sử dụng phiên bản PHP mấy?
3. Bạn có chỉnh sửa file theme, file plugin hay file mã nguồn WordPress không? Thử download 1 bộ mã nguồn WordPress mới về, ghi đè lên mã nguồn WordPress cũ xem sao.
chào a.
em có thuê gói host từ hawkhost và thuê domain ở Godady (salonhongtintin.com)
Em có trỏ domain về IP host chỉ bằng cách thay đổi mục trỏ về IP ở khung A trong phần quản lý domain dns của Godaddy.
Sau đó e có cài wordpress trên cpanel.
Wordpress cài thành công nhưng địa chỉ website lại thêm /wp đổi thành:
salonhongtintin.com/wp (trang chủ)
salonhongtintin.com/wp/wp-admin (đăng nhập wp)
em thắc mắc k biết tại sao?
Lúc đăng ký thuê Hawkhost có làm theo hướng dẫn chọn mục 3 (đã có domain) và điền domain.
Anh có thể giúp em để domain bỏ phần mục /wp được không?
cảm ơn a
salon
Nhìn là biết bạn cài WordPress bằng Softaculous rồi. Lúc cài bạn không bỏ chữ
wp
trong mục In Directory nên nó ra như vậy. Nếu là site mới chưa có dữ liệu gì thì cách nhanh nhất là xóa đi và cài lại. Tham khảo bài viết “Hướng dẫn cài đặt nhanh WordPress với Softaculous” để biết thêm chi tiết.Cảm ơn anh đã trả lời nhanh về câu hỏi của em <3.
Đúng là như anh nói e đã cài đặt WP bằng Softaculous trên Cpanel.
Anh có thể hướng dẫn cách để em xóa đi WP đang hiện có đó không?
Em tạo lại theo hướng dẫn link mà anh chia sẻ là không còn hiện /wp nữa đúng không ạ?
Bạn vào trong giao diện của Softaculous, nhìn menu trên top, mục thứ 4 từ trái sang phải (All Installations).
Chào anh Hiếu, e đã xóa đi wp cũ và cài lại wp mới, tuy nhiên gặp một lỗi là khi em gõ *domain.com* thì không hiện ra HTTPS mặc dù đã có cài đặt HTTPS cho trang. Vấn đề là chỉ khi em gõ domain.com trên thanh địa chỉ thì không tự động chuyển site chính có https. Trong khi đó các site khác vẫn có HTTPS và click vào menu (home or trang chủ) thì lại có https. Em không biết lỗi nằm ở đâu, mong rằng anh Hiếu giúp e, cảm ơn anh. (site em là salonhongtintin.c om) Mong a hồi âm sớm, chúc a một ngày tốt lành.
Cài thêm plugin Really Simple SSL vào. Hướng dẫn chi tiết bạn tìm trên blog sẽ thấy.