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:
-
Bật
display_errors. - Kiểm tra syntax.
- Kiểm tra include/require.
- Kiểm tra upload thiếu file.
- Kiểm tra infinite loop.
- Kiểm tra memory limit.
- 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.