奇怪的500内部服务器错误萤火虫,PHP的,display_errors,阿贾克斯

伙计们,在一个页面上我正在做多个AJAX调用。 所有调用都成功返回响应,但最后一个(与其他ajax调用无关)返回500个内部服务器错误作为响应代码(如萤火虫告诉)。 但是,尽pipe有错误代码,但是从该AJAX调用返回正确的内容

令我惊讶的是,当我将PHP.ini中的display_errors选项设置为On时,错误消失并在页面上呈现响应。 我已经设置错误日志logging到文件,但没有错误logging对应于上述内部服务器错误

顺便说一下,我使用的是Apache,JQuery,PHP5,APC(如果是相关的)。

caching在Linux服务器上的内存“免费”?

Windows Apache2.2 PHP5 PHPMailer错误

PHP的乐趣与Apache 500错误

修复损坏的符号链接/重新安装PHP5

htaccess添加.PHP到没有扩展名的所有东西

Htaccess重写URL来哈希锚在主页上

为什么Apache没有启动XAMPP

Apache Mod将所有传入的URL重写为https:// www

内部错误500 Apache,但在日志中没有?

在.htaccess中的数字库转换

考虑到现有的有限的信息,最有可能的答案是PHP 完成了预期输出的回应之后发生了致命的错误

要测试:在最后执行的行中,回显一些东西。 如果这个回显没有显示,那么你知道你的PHP脚本正在停止。 在这一点上,这只是一个调试和跟踪的问题。

这是非常奇怪的…你正在使用某种类型的库或其他代码, 你没有写可能会影响状态代码头独立于实际的返回值?

我有这个完全相同的问题,原来是一个隐藏的致命错误。 打开display_errors,找到错误,粉碎错误关闭display_errors(可能最好保持display_errors开发和关闭生产)。

在这个请求中,PHP解释器只是崩溃。 我知道一个可能导致PHP崩溃的原因:

由于GCC 4.3中有一些bug,使用这个版本的编译器编译的PHP会破坏异常的执行。 在一些不平凡的情况下,通过脚本引发异常会导致段错误,脚本执行被终止。 几个月前,这个论文被PHP团队证实了。

为了验证它是否发生在你身上,你可以简单地检查脚本执行崩溃的地方,如果在抛出异常之后发生,你就在家。 可以通过将die()进一步放在脚本中进行检查,看看会发生什么。 另一种方法是使用declare(ticks=1)并注册一个tick函数,该函数将debug_backtrace()的最后一项从debug_backtrace()中保存到文件中,以便得到一个报告,脚本是如何执行的。

我有一些类似的问题,问题是脚本抛出异常,并没有catch块,所以异常将冒泡到表面和致命的错误“未捕获的异常”发生。 这是标准的PHP行为,但在一个特定的服务器上,你也会得到响应代码500内部服务器错误,而不是200 OK。 删除异常,并用die()语句替换它们修复了该服务器上的问题(我们可以这样做,因为它是简单的脚本,实际上并没有从异常中受益)

这个问题通常由以下几点来解决。 检查脚本的权限,权限和所有权。 如果在ajax调用之后返回,请检查是否没有任何致命错误。 检查你是否不意外地把文件上传到ASCII模式的Unix上。

更多信息可以阅读http://www.larshemel.com/forum/500_internal_server_error

相关文章

可以认为OpenFeign是Feign的增强版,不同的是OpenFeign支持S...
为进一步规范小程序交易生态、提升用户购物体验、满足用户在...
云原生之使用Docker部署Dashdot服务器仪表盘
本文主要描述TensorFlow之回归模型的基本原理
1.漏洞描述Apache Druid 是一个集时间序列数据库、数据仓库和...
内部类(当作类中的一个普通成员变量,只不过此成员变量是cl...