在 Linux 服务器上运行 Laravel 出现白屏(White Screen of Death,WSOD),通常是因为错误被隐藏或未输出,而不是“没报错”。下面按最常见原因 → 排查方法给你一个清晰清单。
Laravel 需要写入:
storage/bootstrap/cache/错误现象:白屏,无报错
解决:
chmod -R 755 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
(用户可能是 nginx / apache,看你 Web 服务)
Laravel 默认在生产环境隐藏错误。
检查 .env:
APP_DEBUG=true
APP_ENV=local
⚠️ 生产环境调试完要改回
false
查看 PHP 错误日志:
tail -f /var/log/php*/error.log
或 Nginx:
tail -f /var/log/nginx/error.log
storage/logs/laravel.logtail -f storage/logs/laravel.log
常见错误:
composer install
composer dump-autoload
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
public/错误 root:
root /var/www/laravel; ❌
root /var/www/laravel/public; ✅
并包含:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
php -v
php -m | grep php
Laravel 需要:
mbstring, openssl, pdo, tokenizer在 public/index.php 最顶部加:
error_reporting(E_ALL);
ini_set('display_errors', 1);
⚠️ 仅调试用,用完删掉
| 日志内容 | 原因 |
|---|---|
| permission denied | 权限 |
| failed to open stream | storage 不可写 |
| Class ‘X’ not found | composer |
| syntax error | 代码写错 |
你可以直接贴:
storage/logs/laravel.log 或 nginx 报错我可以精准定位是哪一条导致的白屏。