Chủ Nhật, 24 tháng 5, 2026

White Screen of Death – Trang trắng xóa không báo lỗi

Nếu bạn "vọc" đủ lâu...thì đâu đó trên bước đường "khám phá khoa học", bạn sẽ gặp những thời điểm...tái mặt.

Bạn mở website.

Không có:

  • error
  • warning
  • thông báo đỏ chói
  • dòng chữ “Fatal Error”

Không có gì cả.

Chỉ là…

Một màn hình trắng tinh. 🤡


Bạn "bình tĩnh"refresh lại.

Vẫn trắng.

Mở tab khác.

Vẫn trắng.

Bắt đầu tự hỏi với một tâm trạng không lấy gì...bình tĩnh cho lắm:

“Website mình chết rồi hả?” 😅


👉 Chúc mừng, bạn vừa gặp:

White Screen of Death

(WSOD)



White Screen of Death trong PHP là tình trạng website hiển thị trang trắng hoàn toàn mà không báo lỗi.

Nguyên nhân phổ biến:

  • fatal error
  • include lỗi
  • memory exhausted
  • syntax error
  • lỗi infinite loop
  • tắt hiển thị error

Vì sao đáng sợ?

Vì ít nhất khi có error, bạn còn biết mình sai ở đâu.


Còn WSOD thì:

Không có gì cả 😶

👉 Cảm giác giống như:

Bạn bật TV.

TV không lên hình.

Không tiếng.

Không đèn báo.

Không biết:

  • mất điện,
  • hư remote,
  • hay TV đã “đi xa” 😅

White Screen of Death thực chất là gì?

Thông thường:

PHP bị lỗi nghiêm trọng (fatal error)

NHƯNG:

display_errors = Off

👉 Kết quả:

PHP chết âm thầm.

Bạn chỉ thấy màn hình trắng.


Ví dụ cực phổ biến

<?php

require "functions.php";

hello();

?>

Nhưng file:

functions.php

không tồn tại.


Nếu server tắt hiển thị lỗi:

👉 Trang trắng 🤡


Ví dụ khác

<?php

while(true){

}

👉 Infinite loop.

👉 PHP ăn RAM liên tục.

👉 Server “ngất xỉu”.

👉 Trang trắng.


8 nguyên nhân phổ biến nhất


❌ 1. Syntax error

Thiếu:

  • ;
  • }
  • "

❌ 2. Include/require lỗi


❌ 3. Gọi function không tồn tại


❌ 4. Memory exhausted

Ví dụ:

$arr = [];

while(true){
$arr[] = "hello";
}

👉 RAM tăng mãi.

👉 PHP chết.


❌ 5. Infinite loop


❌ 6. Lỗi database nghiêm trọng


❌ 7. Extension PHP bị thiếu


❌ 8. Upload host thiếu file

Đây là lỗi cực phổ biến 😅 Gặp vài lần nhưng khả năng cao....vẫn tiếp tục gặp!


Ví dụ đời thường

Bạn chuyển nhà.

Mang:

  • bàn
  • ghế
  • TV
  • tủ lạnh

Nhưng quên mang dây điện 🤡


👉 Mọi thứ nhìn vẫn “có vẻ đủ”.

👉 Nhưng không hoạt động.


Website upload host cũng vậy.

Thiếu đúng một file:

  • config.php
  • functions.php
  • vendor/

👉 là đủ “màn trắng”.


Cách debug White Screen of Death

✅ Cách 1: Bật hiển thị lỗi

Thêm lên đầu file:

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

?>

👉 Rất nhiều lần, sau khi bật:

“trang trắng thần bí”

sẽ biến thành:

Fatal error: ...

👉 Và bạn lập tức biết lỗi nằm ở đâu 😎


✅ Cách 2: Kiểm tra file include


✅ Cách 3: Xem error log

Trên hosting thường có:

  • Error Log
  • PHP Error Log

✅ Cách 4: Comment từng đoạn code. Đây là cách "hay ho" nhất


Ví dụ

echo "Bước 1";

Nếu hiện.

echo "Bước 2";

Không hiện.

👉 Lỗi nằm ở giữa.


Ví dụ “đau cái lòng”

Bạn debug gần nguyên ngày.

Cuối cùng phát hiện:

require "config.php";

Trong khi file thật tên là:

Config.php

👉 Trên Windows chạy bình thường.

👉 Upload Linux host → crash 🤡


Vì sao?

Windows thường không phân biệt:

  • config.php
  • Config.php

Linux thì có 😅


Một ví dụ khác

Bạn upload website.

Quên upload folder:

vendor/

👉 Composer libraries biến mất.

👉 Website trắng xóa như mùa đông Siberia 🤡


Checklist “cứ theo là ra”

Khi gặp trang trắng:

  1. Bật display_errors.
  2. Kiểm tra syntax.
  3. Kiểm tra include/require.
  4. Kiểm tra upload thiếu file.
  5. Kiểm tra infinite loop.
  6. Kiểm tra memory limit.
  7. Xem error logs.

Một sự thật hơi “mất lòng”

White Screen of Death thường không đáng sợ như vẻ ngoài.

👉 Nhiều khi:

  • thiếu 1 file,
  • sai 1 ký tự,
  • hoặc thiếu dấu ; 😅

Tổng kết

White Screen of Death nghĩa là:

PHP bị lỗi nghiêm trọng nhưng không hiển thị thông báo lỗi.


👉 Bí quyết xử lý nhanh nhất:

error_reporting(E_ALL);
ini_set('display_errors', 1);

👉 Sau đó:

  • đọc error
  • debug từng bước
  • kiểm tra file upload

FAQ nhanh

Vì sao localhost chạy nhưng host trắng xóa?

→ Thường do:

  • thiếu file
  • khác phiên bản PHP
  • Linux phân biệt hoa thường

White screen có phải website bị hack?

→ Thường là không 😅


Có nên bật display_errors trên production?

→ Không nên lâu dài.

Chỉ bật khi debug.


👉 Bạn có thể cũng đang gặp