温馨提示×

linux laravel为什么白屏

小樊
44
2026-09-25 11:39:51
栏目: 智能运维

在 Linux 服务器上运行 Laravel 出现白屏(White Screen of Death,WSOD),通常是因为错误被隐藏或未输出,而不是“没报错”。下面按最常见原因 → 排查方法给你一个清晰清单。


一、最常见原因(90% 情况)

1️⃣ 文件权限问题(Linux 特有)

Laravel 需要写入:

  • storage/
  • bootstrap/cache/

错误现象:白屏,无报错

解决:

chmod -R 755 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

(用户可能是 nginx / apache,看你 Web 服务)


2️⃣ 没有开启错误显示(白屏主因)

Laravel 默认在生产环境隐藏错误。

检查 .env:

APP_DEBUG=true
APP_ENV=local

⚠️ 生产环境调试完要改回 false


3️⃣ PHP 报错但被服务器吞掉

查看 PHP 错误日志:

tail -f /var/log/php*/error.log

或 Nginx:

tail -f /var/log/nginx/error.log

二、Laravel 自身问题

4️⃣ storage/logs/laravel.log

tail -f storage/logs/laravel.log

常见错误:

  • Class not found
  • Route not defined
  • Syntax error

5️⃣ Composer 依赖没装或没自动加载

composer install
composer dump-autoload

6️⃣ 配置缓存问题

php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear

三、Nginx / Apache 配置问题(Linux 特有)

7️⃣ Nginx 没指向 public/

错误 root:

root /var/www/laravel;        ❌
root /var/www/laravel/public; ✅

并包含:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

8️⃣ PHP 没装 / 没启用

php -v
php -m | grep php

Laravel 需要:

  • PHP ≥ 8.0(视版本)
  • 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 代码写错

六、我可以继续帮你

你可以直接贴:

  • Linux 发行版(Ubuntu / CentOS)
  • Web 服务(Nginx / Apache)
  • Laravel 版本
  • storage/logs/laravel.log 或 nginx 报错

我可以精准定位是哪一条导致的白屏。

0 踩