我在php-fpm上运行PHP 5.5/5.6实例没有任何问题(unix套接字和nginx)。
今天我编译了 PHP 7,并将其作为第三个 PHP 实例启动。虽然 PHP 5.5/5.6 实例为 PHP 7 实例提供请求可以正常工作,但我得到:
警告:pid 2582,fpm_request_check_timed_out(),第 277 行:[pool www0] 子项 2813,脚本"(请求:")执行超时(120.018160 秒),正在终止
在我的 php-fpm 日志文件和
[错误] 1889#0:*4 recv() 失败(104:对等方重置连接)从上游读取响应标头,客户端:xxx.xxx.xxx.20,服务器:本地主机,请求:"GET/info.php HTTP/1.1",上游:"fastcgi://unix:/var/run/php70-fpm.sock:",主机:"xxx.xxx.xxx.21"
在我的 nginx 错误日志文件中。
我使用也适用于 PHP 5.6 实例的fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
。尽管 PHP 7 的脚本文件名似乎为空。我正在请求脚本/info.php
.
使用 php-fpm 的 PHP 5.x 和 7.0 有什么区别吗?
更新
至少我不是唯一一个面临这些问题的人。我在这里打开了一个错误报告:https://bugs.php.net/bug.php?id=69850
这里还报告了一个非常相似(可能相同)的错误:https://bugs.php.net/bug.php?id=69875(thx 到 @crypticツ)
更新 2
尝试最新的 alpha2。该错误已在此处修复。Unix套接字现在又像魅力一样工作了。
我不确定这是否可以被视为答案,但此时此刻,当我写这个答案时,您提出的错误已被 PHP 团队确认:
[2015-06-23 12:47 UTC] remi@php.net
I confirm
PHP 5.6.10 works
PHP 7.0.0-dev (Jun 17 2015)
- network socket: OK.
- UDS: broken
更新:我刚刚看到你也知道同样的事情!