【问题标题】:Unable to understand the exception in Prod, while the same functionality works in Dev mode无法理解 Prod 中的异常,而相同的功能在 Dev 模式下工作
【发布时间】:2021-02-28 03:41:20
【问题描述】:
Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "" at /var/www/<projectId>/src/oro/platform/src/Oro/Bundle/FeatureToggleBundle/EventListener/RequestListener.php line 33

并且跟踪如下

    {/var/www/<projectId>/src/oro/platform/src/Oro/Bundle/FeatureToggleBundle/EventListener/RequestListener.php:33 {▼
    Oro\Bundle\FeatureToggleBundle\EventListener\RequestListener->onRequest(GetResponseEvent $event) …
    › if ($event->isMasterRequest()) {
    ›     throw new NotFoundHttpException();
    › }
  }
  /var/www/<projectId>/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php:126 {}

并且提供功能的请求在 Dev 中工作得很好,但在 Prod 中却不行。

我已确保文件已更新,并确保没有任何问题。

检查数据库迁移并确保所有更改都完好无损

该功能在 Dev 上正常工作的事实很奇怪,当我在 500 内部错误上执行 /index_dev.php/customer/request/create 时没有显示任何错误,但实际上加载 RFQ 页面非常好并且完好无损。

对调试此错误有什么建议或了解可能出现的问题?

【问题讨论】:

  • prod 环境是否在同一个系统上?如果是,您在切换到 prod 时是否删除/清除了所有缓存文件?
  • 嗨,John,我已经为 Dev 和 Prod 完成了缓存:清除,是的,它在同一个系统上。
  • 你试过使用 rm -rf var/cache/* 吗?
  • 是的@singebatteur 我有。

标签: php symfony orocrm orocommerce


【解决方案1】:

根据错误消息和堆栈跟踪,您在 dev 中启用了该功能,但在 prod 环境中禁用了该功能。通常,它是由于缓存而发生的。

  1. 所以第一个建议是手动删除文件缓存,使用rm -rf var/cache/*,如果你使用的是Redis,也要刷新redis数据库。 cache:clear 命令并不总是可靠的。

  2. 您说异常仅在 prod 中引发,但错误堆栈跟踪具有包装器,必须仅与 AppKernel 中的 debug=true 选项一起使用。请确保您没有自定义 index.php 文件以启用调试,因为它不安全,并确保您的网络服务器虚拟主机配置为使用 index.php,而不是 index_dev.php。

  3. 异常来自功能切换包。作为最后的手段,您可以检查the documentation,了解该功能是如何实现的,并从跟踪(src/oro/platform/src/Oro/Bundle/FeatureToggleBundle/EventListener/RequestListener)中调试监听器,看看,在哪里价值来自于。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 2016-12-19
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多