【问题标题】:Laravel shows Symfony-styled exception even when APP_DEBUG set to false即使 APP_DEBUG 设置为 false,Laravel 也会显示 Symfony 样式的异常
【发布时间】:2021-04-12 14:32:08
【问题描述】:

刚刚将一个新应用部署到生产环境并看到一个奇怪的错误:

其中一个页面出现 PHP 错误并引发异常。奇怪的是,这是一个 Symfony 品牌的异常页面 (screenshot),与我之前在 Laravel 中看到的不同。 Env 文件已设置为生产环境,并且 APP_DEBUG=false。

有谁知道如何解决这个问题?

我尝试了以下方法来清除和重置缓存,但没有帮助

php artisan config:cache

不确定是否重要,但该应用是使用 http://deployer.org 和 Deployer 的 Laravel 配方部署的

【问题讨论】:

  • 将环境设置为生产环境,看看它是否有效
  • 这是我的 .env 的摘录: APP_ENV=production APP_DEBUG=false 还是同样的问题
  • 所有迁移都完成了吗?似乎您没有控制加载该视图文件的控制器方法中的所有情况(即有变量与没有变量)。你能分享那个代码吗?
  • 如果我没记错的话,打开或关闭 APP_DEBUG 的区别在于您是否看到堆栈跟踪和环境变量。如果你想要一个自定义的 500 错误页面,你应该检查error handling
  • 不知何故问题在一夜之间消失了。今天早上醒来,现在看到了来自 Laravel 的标准“500 服务器错误”页面,而没有对配置文件进行任何额外的更改。可能是我的 EC2 实例上的某种额外缓存。谢谢你们!

标签: laravel debugging


【解决方案1】:

最可能的原因是当部署程序运行composer install 时,它使用--no-dev 选项执行此操作,这会阻止安装所需的包。如果您想在部署时包含开发包,请将以下内容添加到 deploy.php:

set('composer_options', '--verbose --prefer-dist --no-progress --no-interaction --optimize-autoloader');

这是删除--no-dev 后的默认composer_options 值。

还有一些稍微复杂一些的选项,包括为不同的主机设置不同的任务,详见此处:PHPDeployer: set variable for local task based on host?

【讨论】:

    猜你喜欢
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    • 2023-01-27
    • 1970-01-01
    • 2017-05-30
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多