Ubuntu 下 PHP-FPM 白屏(空白页 / White Screen of Death) 通常说明:
请求没报错,但页面没有输出,或者 错误被隐藏了。下面按最常见原因给你排查。
在浏览器里:
200 → PHP 执行了但没输出500 → PHP 报错但被隐藏502 / 504 → PHP-FPM 没起来或超时默认生产环境会关错误显示。
检查 php.ini(注意是 FPM 的)
php --ini
# 或
/etc/php/8.x/fpm/php.ini
确认:
display_errors = On
error_reporting = E_ALL
然后重启:
sudo systemctl restart php8.x-fpm
临时调试也可以在 PHP 文件顶部加:
error_reporting(E_ALL);
ini_set('display_errors', 1);
常见:
看 PHP-FPM 日志:
sudo tail -f /var/log/php8.x-fpm.log
或 Nginx / Apache 错误日志:
sudo tail -f /var/log/nginx/error.log
白屏 + 200,但无内容,常见配置错误。
Nginx 配置必须有:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.x-fpm.sock;
}
检查:
ls -l /run/php/php8.x-fpm.sock
重启:
sudo systemctl restart nginx php8.x-fpm
systemctl status php8.x-fpm
如果没运行:
sudo systemctl start php8.x-fpm
PHP 文件无法读取 → 白屏
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
例如:
while(true){}
ob_start(); // 没 ob_end_flush()
.env 不存在Laravel 示例:
chmod -R 775 storage bootstrap/cache
composer install
php artisan config:clear
php -v
systemctl status php8.x-fpm
tail -f /var/log/php8.x-fpm.log
tail -f /var/log/nginx/error.log
你可以把下面信息发我,我可以直接帮你定位:
/var/log/php8.x-fpm.log 报错内容我可以一步一步帮你修。