Laravel应用突发空白白屏求助:无日志无错误输出
Laravel 7.x 空白白屏(无日志、执行到Kernel::handle后终止)排查方案
一、强制开启错误输出
因为无日志提示,先在项目根目录的index.php最顶部添加以下代码,强制显示所有错误:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
刷新页面后,就能直接看到具体的错误信息,定位问题根源。
二、捕获请求处理阶段的异常
代码卡在$kernel->handle()之后,说明请求处理过程中抛出了未被捕获的异常。给这段代码包裹try-catch,直接打印异常详情:
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); try { $response = $kernel->handle( $request = Illuminate\Http\Request::capture() ); var_dump('请求处理完成,生成响应'); // 调试用,确认是否走到这一步 $response->send(); $kernel->terminate($request, $response); } catch (\Exception $e) { var_dump('捕获异常:' . $e->getMessage()); var_dump('异常堆栈:' . $e->getTraceAsString()); } catch (\Throwable $e) { var_dump('捕获致命错误:' . $e->getMessage()); var_dump('错误堆栈:' . $e->getTraceAsString()); }
访问页面后,就能看到具体的错误信息,不管是普通异常还是致命错误。
三、修复目录权限
Laravel需要storage和bootstrap/cache目录有写入权限,权限丢失或变更会导致日志无法写入、应用无法正常运行:
# Linux环境下调整权限 chmod -R 755 storage bootstrap/cache # 根据你的web服务器用户调整(比如nginx用www-data,apache用apache) chown -R www-data:www-data storage bootstrap/cache
四、清除损坏的缓存
缓存文件损坏会导致应用启动失败,手动清除缓存:
# 命令行执行清除缓存 php artisan config:clear php artisan route:clear php artisan view:clear php artisan cache:clear
如果命令行无法执行,直接删除bootstrap/cache目录下的所有文件,以及storage/framework/cache内的所有内容。
五、修复自动加载与依赖
依赖更新或自动加载文件损坏也会导致白屏,重新生成自动加载:
composer dump-autoload -o
如果之前更新过依赖,尝试重新安装确保版本一致:
composer install --no-dev
六、检查PHP环境兼容性
Laravel 7.x要求PHP版本≥7.2.5,且必须启用以下扩展:BCMath、Ctype、JSON、Mbstring、OpenSSL、PDO、Tokenizer、XML。通过php -m命令查看已安装扩展,缺少的话及时安装启用。
七、检查.env配置
确认.env文件是否被误改:
- 临时设置
APP_DEBUG=true,看是否能生成错误日志 - 检查
APP_LOG配置(比如APP_LOG=single),确保日志目录可写 - 核对数据库、Redis等服务配置,避免连接失败导致应用崩溃
内容的提问来源于stack exchange,提问作者Mehmet
相关产品推荐
相关产品推荐

