Php “如何排除故障”;FastCGI:从服务器接收到不完整的头(0字节)";错误

Php “如何排除故障”;FastCGI:从服务器接收到不完整的头(0字节)";错误,php,mysql,apache,prestashop,Php,Mysql,Apache,Prestashop,我一直收到以下错误: Wed Mar 30 01:22:43.780576 2016] [fastcgi:error] [pid 12345:tid 1234567890] [client 123.459.78.123:12345] FastCGI: incomplete headers (0 bytes) received from server "/path/to/php5-fcgi", referer: http://example.com/some/file.php 这仅在我访问特定页

我一直收到以下错误:

Wed Mar 30 01:22:43.780576 2016] [fastcgi:error] [pid 12345:tid 1234567890] [client 123.459.78.123:12345] FastCGI: incomplete headers (0 bytes) received from server "/path/to/php5-fcgi", referer: http://example.com/some/file.php
这仅在我访问特定页面(控制器)时发生。更让我困惑的是,这个错误似乎是随机的。这意味着有时我可以很好地访问页面,而有时我会不断地遇到错误

我所说的页面是Prestashop 1.5.4的后台,特别是订单页面(后台>订单>订单)

该页面确实向MySQL发送了一个查询(不管它是如何在不到一秒钟的时间内完成的)。以下是完整的查询(已调试):

我最大的怀疑是查询有问题,因为当我使用MySQL Workbench运行该查询时,初始运行大约需要2秒。当我再次运行查询时(紧跟在第一个查询之后),需要~0.059(可能是缓存)

有人能帮我吗

我正在使用Ubuntu 14.04 PHP 5.5.9 Apache 2.4.7(带有PHP5-FPM)

**编辑**

当我跑步时:

sudo tail -f /var/log/upstart/php5-fpm.log
这就是我得到的:

[04-Apr-2016 10:55:54] WARNING: [pool www] child 37686 exited on signal 11 (SIGSEGV - core dumped) after 111.726966 seconds from start
[04-Apr-2016 10:55:54] NOTICE: [pool www] child 38128 started
[04-Apr-2016 10:55:54] WARNING: [pool www] child 37774 exited on signal 11 (SIGSEGV - core dumped) after 81.831809 seconds from start
[04-Apr-2016 10:55:54] NOTICE: [pool www] child 38129 started
[04-Apr-2016 10:55:54] WARNING: [pool www] child 37798 exited on signal 11 (SIGSEGV - core dumped) after 76.299913 seconds from start
[04-Apr-2016 10:55:54] NOTICE: [pool www] child 38130 started
[04-Apr-2016 10:55:54] WARNING: [pool www] child 37768 exited on signal 11 (SIGSEGV - core dumped) after 83.162501 seconds from start
[04-Apr-2016 10:55:54] NOTICE: [pool www] child 38131 started
[04-Apr-2016 10:55:57] WARNING: [pool www] child 37859 exited on signal 11 (SIGSEGV - core dumped) after 65.427848 seconds from start
[04-Apr-2016 10:55:57] NOTICE: [pool www] child 38133 started
script_filename = /path/to/some/script.php
[0x00007f55bb18afd8] query() /path/to/some/script/DbPDO.php:80
[0x00007f55bb18aef8] _query() /path/to/some/script/Db.php:305
[0x00007f55bb18ad88] query() /path/to/some/script/Db.php:482
[0x00007f55bb18ab68] executeS() /path/to/some/script/AdminController.php:2198
[0x00007f55bb18a9e8] getList() /path/to/some/script/AdminController.php:1531
[0x00007f55bb18a8d0] renderList() /path/to/some/script/AdminController.php:1440
[0x00007f55bb18a788] initContent() /path/to/some/script/Controller.php:167
[0x00007f55bb18a5d0] run() /path/to/some/script/Dispatcher.php:349
[0x00007f55bb18a480] dispatch() /path/to/some/script/index.php:50
现在,当我执行有问题的页面时,会出现新的警告/通知/错误

**编辑2** 我想在打开fpm配置上的slow_log后,我缩小了问题的范围。这就是我得到的:

[04-Apr-2016 10:55:54] WARNING: [pool www] child 37686 exited on signal 11 (SIGSEGV - core dumped) after 111.726966 seconds from start
[04-Apr-2016 10:55:54] NOTICE: [pool www] child 38128 started
[04-Apr-2016 10:55:54] WARNING: [pool www] child 37774 exited on signal 11 (SIGSEGV - core dumped) after 81.831809 seconds from start
[04-Apr-2016 10:55:54] NOTICE: [pool www] child 38129 started
[04-Apr-2016 10:55:54] WARNING: [pool www] child 37798 exited on signal 11 (SIGSEGV - core dumped) after 76.299913 seconds from start
[04-Apr-2016 10:55:54] NOTICE: [pool www] child 38130 started
[04-Apr-2016 10:55:54] WARNING: [pool www] child 37768 exited on signal 11 (SIGSEGV - core dumped) after 83.162501 seconds from start
[04-Apr-2016 10:55:54] NOTICE: [pool www] child 38131 started
[04-Apr-2016 10:55:57] WARNING: [pool www] child 37859 exited on signal 11 (SIGSEGV - core dumped) after 65.427848 seconds from start
[04-Apr-2016 10:55:57] NOTICE: [pool www] child 38133 started
script_filename = /path/to/some/script.php
[0x00007f55bb18afd8] query() /path/to/some/script/DbPDO.php:80
[0x00007f55bb18aef8] _query() /path/to/some/script/Db.php:305
[0x00007f55bb18ad88] query() /path/to/some/script/Db.php:482
[0x00007f55bb18ab68] executeS() /path/to/some/script/AdminController.php:2198
[0x00007f55bb18a9e8] getList() /path/to/some/script/AdminController.php:1531
[0x00007f55bb18a8d0] renderList() /path/to/some/script/AdminController.php:1440
[0x00007f55bb18a788] initContent() /path/to/some/script/Controller.php:167
[0x00007f55bb18a5d0] run() /path/to/some/script/Dispatcher.php:349
[0x00007f55bb18a480] dispatch() /path/to/some/script/index.php:50
更多的最佳猜测是因为此函数:

[0x00007f55bb18ab68] executeS() /path/to/some/script/AdminController.php:2198
它基本上发送了我前面提到的查询。改变这一点意味着我必须改变Prestashop的核心引擎。我不希望这样做,因为它可能与其他功能/模块有一些依赖关系


我想知道是否有一种方法可以稍微增加php fpm或Apache上的超时时间。我知道存在这样的解决方案,但我不知道从何处查找/开始。

您应该调查错误的实际来源和发生原因,目前,您需要查看php-fcgi的错误日志。缓慢的查询不太可能生成无效的fastcgi响应头。我猜想,每当脚本运行时间较长时(例如,如果查询时间较长),您就会收到错误。Apache仅等待php fpm响应的一定时间,因此您选择的超时值很可能低于脚本运行所需的时间。@t.niese在哪里或如何修改此值?