【问题标题】:URL gives Internal server error in production, but works in development?URL 在生产中给出内部服务器错误,但在开发中有效?
【发布时间】:2013-03-06 10:10:53
【问题描述】:

我对 symfony2 和教义2 比较陌生,对某些事情感到困惑......

dev 环境中访问某个页面时,我按预期获得了该页面的内容,但是当我尝试使用prod 环境打开完全相同的页面时,我看到的只是“内部服务器错误”。

顺便说一句,prod 中的其他页面工作正常...

查看php错误日志,我看到了

PHP 警告:需要([路径]/app/cache/prod/doctrine/orm/Proxies/_CG_SitesMyBundleEntity[myEntity].php):无法打开流:没有这样的文件或第 92 行 [path]\vendor\doctrine\orm\lib\Doctrine\ORM\Proxy\ProxyFactory.php 中的目录

查看相关目录,确实没有提到的代理文件,但是其他的。

我尝试完全清除缓存目录无济于事,同样适用于重新生成实体。

也许相关:我最近升级了 symfony 2.2 及其配套的学说版本。

谁能指出我为什么没有自动创建特定代理(当其他代理是)以及我可以做些什么来解决这个问题?

[编辑]
即使在运行php app/console cache:warmup --env=prod 时抛出的反射错误与缺少代理文件的实体无关,解决反射错误也解决了“内部服务器错误”

【问题讨论】:

  • 也许你应该尝试 php app/console cache:warmup 并检查它是否给出任何错误
  • 结果为@​​987654325@。使用--env=prod 运行命令会导致反射错误,但该错误与实体无关。将调查反射错误。
  • 我也收到此错误:[ReflectionException] Class Name\Bundle\Entity\Name\Bundle\Entity\Order 不存在,应该是 Class Name\Bundle\Entity\Order 不存在。有人对此有任何更新吗?

标签: symfony doctrine-orm symfony-2.2


【解决方案1】:

在 config.yml 中取消注释 auto_generate_proxy_classes: %kernel.debug%

【讨论】:

  • 您好,感谢您提供答案。您能否就您的解决方案如何解决问题提供更多评论?请记住,其他 n00b 可能会阅读此问题/答案,并且可能需要知道此解决方案的工作原理以判断它是否也适合他们。 :)
猜你喜欢
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
相关资源
最近更新 更多