symfony错误500而不是生产中的404

时间:2010-02-03 03:24:59

标签: php symfony1 apache2

我的symfony项目在生产时不存在操作时抛出错误500而不是404。 在dev环境中,它显示错误404(实际上404错误的调试表示未找到操作)。

我正在使用自定义404模板作为手册说明。

2 个答案:

答案 0 :(得分:2)

听起来好像是自定义404操作中的错误。您能否提供404动作的代码以及如何在settings.yml中定义自定义404?

答案 1 :(得分:0)

我遇到了同样的问题,我在调试中获得了404,但是生产了500。我知道这不是llazzaro案件的答案,因为他将Cyro标记为正确的答案,但这是发生在我身上的事情,以防其他人遇到问题。

我的操作类没有扩展sfActions,而是扩展了一个中间类(反过来扩展了sfActions)。该中间类调用$this->getRoute(),它假定返回一个对象,实际上它有时可能为空。尝试访问空对象上的方法显然失败,导致错误500。

通过检查我的Apache日志,我想出了这一点(正如Mike B建议通过对原始问题的评论)。那里有一条错误消息:

  

PHP致命错误:在第46行的/path/to/apps/my_app/lib/sfIntermediateActions.php中的非对象上调用成员函数getRequirements()

希望这可以帮助其他任何无法解决问题的人从这里提供的其他答案中获得答案!