Ubuntu 下 PHP 页面白屏(White Screen of Death,WSOD)通常不是“没反应”,而是错误被隐藏了,所以你只看到一片空白。下面按最常见原因 → 排查方法 → 解决办法来说明。
这是白屏的第一原因。
在 PHP 文件最前面加:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
如果刷新后出现错误,说明就是这个问题。
编辑 php.ini(路径取决于 PHP 版本):
sudo nano /etc/php/8.1/apache2/php.ini
# 或 fpm
/etc/php/8.1/fpm/php.ini
修改:
display_errors = On
error_reporting = E_ALL
重启服务:
sudo systemctl restart apache2
# 或
sudo systemctl restart php8.1-fpm
例如:
sudo tail -f /var/log/apache2/error.log
# 或
sudo tail -f /var/log/php8.1-fpm.log
php -v
有输出,但网页白屏?
检查:
sudo apt list --installed | grep libapache2-mod-php
没有就装:
sudo apt install libapache2-mod-php
sudo a2enmod php8.1
sudo systemctl restart apache2
如果你用 Nginx:
确保:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
否则 PHP 不会执行,直接白屏或下载文件。
ls -l /var/www/html
建议:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
Windows 编辑的 PHP 文件可能带 BOM,导致白屏。
解决:
如果是框架:
storage/logs/laravel.log
.env 中:
APP_DEBUG=true
✅ 是否开了 display_errors
✅ 是否看了 error.log
✅ Apache/Nginx 是否支持 PHP
✅ 文件是否存在 / 权限是否正常
✅ 是否是框架错误被隐藏
你可以直接贴:
我可以 精准定位是哪一行导致白屏。