2014-11-03 188 views
0

客户端有一个运行在Kohana 3.0.3上的站点。他打破了一些东西(他甚至不完全确定是什么,他可能只是通过管理面板修改数据库中的一些数据),现在每个页面都会返回500.如何找出我在处理什么错误时,Kohana网站什么都不做,但抛出错误500?

从我所了解的错误页面实际上是由Kohana(而不是主持人)生成的。那么我该如何去寻找究竟是什么错误。我谷歌了一下,但找不到任何关于调试Kohana的非工作实例的具体内容。我检查了tmp文件夹中的日志,但当前月份没有出现任何条目。

是否有一些调试标志,我可以设置能够看到错误代码?或者某些记录所有以500返回的错误的日志文件?

编辑:我可以访问FTP和数据库,但不能访问服务器管理面板。

+5

阅读您的Web服务器的错误日志。 – 2014-11-03 13:38:38

+0

@GeraldSchneider不幸的是,主机是我无法访问的唯一东西。假设Kohana向我抛出这500个错误,很可能是特定错误未被服务器注册? – jahu 2014-11-03 13:40:39

+0

如果PHP发出错误,它会显示在Web服务器错误日志中。如果你没有访问权限,你通常可以在PHP本身中定义自己的错误日志:'error_reporting(E_ALL^E_NOTICE); ini_set(“log_errors”,1); ini_set(“error_log”,“/path/to/php_errorlog.log”);'你应该确保PHP尽早执行。 – 2014-11-03 13:43:26

回答

0

经过一番良好的老式逆向工程,我发现当IN_PRODUCTION变量设置为true时隐藏了错误。在我的情况下,该值在application目录中的bootstrap.php文件中被初始化。

我不得不切换:

define('IN_PRODUCTION', true); 

到:

define('IN_PRODUCTION', false); 

现在我可以看到究竟是什么打破。

编辑:Kohana网站上问题的来源是前端菜单元数据中的错误。因此,如果Kohana网站没有任何部分可用(包括管理面板),则可能是菜单结构中存在错误(我的客户端设法只使用管理面板来分解它,所以它可能是引擎/菜单中的一个错误模块)。代码也可能仅限于该网站。

+0

很好,你有错误。你可以接受这个答案,所以稍后有人会发现这个有用。幸运的是你的错误是在PHP代码中。对于实际的500错误,它比这更复杂一点,没有Web服务器错误日志。即使PHP获得更改以解析您的.php文件,Web服务器也可能生成500错误。 – bansi 2014-11-03 14:39:30

相关问题