WEBSITE BỊ LỖI TRẮNG TRANG, HÃY ĐỌC FILE LOG!
Cách đây nhiều năm về trước, khi mà các webserver vẫn còn hạn chế nhiều cái thì mỗi khi website bị lỗi trong code nó sẽ đều hiển thị đoạn code bị lỗi ngay trên website khiến ai vào cũng thấy. Ở đoạn đó, đối với người quản trị thì nó sẽ giúp bạn biết được file nào bị lỗi, lỗi ở đoạn code nào. Còn đối với các hacker xấu tính thì họ sẽ khai thác lỗi đó như là một bug để xâm nhập, chẳng hạn như vậy.
Đó là lý do tại sao mà hiện nay các nhà cung cấp host và các thiết lập mặc định của các webserver đều thiết lập ẩn đoạn báo lỗi trong code để tăng tính bảo mật, thay vì hiện lỗi thì bây giờ các lỗi code đa phần đều hiển thị với màn hình trắng, hay còn gọi là lỗi trắng trang.
Mình đã từng (bị) hỏi rất nhiều câu hỏi dạng như “Ơ, website mình đang bị trắng trang, làm sao để fix?“, nói thật là mình có mọc thêm bộ não nữa cũng không fix được cái lỗi trắng trang nếu chỉ dựa vào một câu nói “website mình bị lỗi trắng trang”.
Mình nói như vậy để bạn biết là lỗi trắng trang hoặc lỗi 500 Internal Server có hàng vạn lý do khác nhau nhưng tất cả nguyên nhân đều xuất phát từ thiết lập trong webserver (.htaccess đối với Apache và file .conf đối với NGINX) và xuất phát từ code trên website.
Trong đó, có 2 loại lỗi PHP là:
Sửa false thành true và save lại.
Solutions
Muốn fix được lỗi, chúng ta cần biết nguyên nhân, khi biết được nguyên nhân rồi thì dù bạn là newbie hay pro cũng đều tự sửa lỗi được bằng cách đọc file log lưu lại lỗi, ở đó bạn sẽ biết được nguyên nhân chính xác hơn.Đối với lỗi trắng trang
100% lỗi trắng trang đều xuất phát từ code của bạn như gọi một hàm không tồn tại, code sai cú pháp, viết thừa dấu,…nên để fix được lỗi này thì hãy mở file error log lên mà xem. File log này thường sẽ có tên dạng là error_log, error.log hoặc đại loại là như vậy và sẽ nằm ở thư mục /public_html đối với Shared Host, còn đối với server riêng (VPS/Dedicated) thì bạn mở file cấu hình domain đang bị lỗi của bạn ra sẽ thấy dòng khai báo log và cứ dò theo đường dẫn đó mà mở lên. Nếu dùng Shared Host bạn không thể tìm ra file log thì hãy gửi hỗ trợ đến bộ phận kỹ thuật để họ tìm giúp. Nội dung file log có dạng như sau:|
01
02 |
[21-Aug-2014 21:40:17 UTC] PHP Warning: stripslashes() expects parameter 1 to be string, object given in /path/xxx/example.com/public_html/file.php on line XXX[21-Aug-2014 21:40:17 UTC] PHP Fatal Error: XXX............................................................. |
- PHP Warning – Cảnh báo với mức độ bình thường, các warning không ảnh hưởng đến việc website bị gián đoạn và mặc định nó sẽ ẩn đi. Nếu bạn thiết lập phần WP_DEBUG trong file wp-config.php thành TRUE thì nó sẽ hiển thị Warning ra ngoài website
- PHP Fatal Error – Đây là lỗi nghiêm trọng mà PHP không thể tiếp tục chạy được nếu gặp phải, là nguyên nhân dẫn đến lỗi trắng trang.
|
01 |
define('WP_DEBUG', false); |