【发布时间】:2015-08-30 21:46:50
【问题描述】:
我在 php-fpm 上运行 PHP 5.5/5.6 实例没有任何问题(unix 套接字和 nginx)。
今天我编译了 PHP 7,并将它作为第三个 PHP 实例启动。虽然我得到的 PHP 7 实例的 PHP 5.5/5.6 实例可以很好地处理请求:
警告:pid 2582, fpm_request_check_timed_out(), line 277: [pool www0] child 2813, script '' (request: " ") execution timeout (120.018160 sec), 终止
在我的 php-fpm 日志文件中和
[error] 1889#0: *4 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: xxx.xxx.xxx.20, server: localhost, request: "GET / info.php HTTP/1.1”,上游:“fastcgi://unix:/var/run/php70-fpm.sock:”,主机:“xxx.xxx.xxx.21”
在我的 nginx 错误日志文件中。
我使用fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name,它也适用于 PHP 5.6 实例。尽管 PHP 7 的脚本文件名似乎是空的。我要一个脚本/info.php。
使用 PHP 5.x 和 7.0 和 php-fpm 有什么区别吗?
更新
至少我不是唯一一个面临这些问题的人。我在这里打开了一个错误报告:https://bugs.php.net/bug.php?id=69850
这里还报告了一个非常相似(可能相同)的错误:https://bugs.php.net/bug.php?id=69875(感谢@crypticツ)
更新 2
Try the newest alpha2。该错误已修复。 Unix 套接字现在又像魅力一样工作了。
【问题讨论】:
-
投反对票?什么原因?
-
我遇到了相同/类似的问题。我的可能与此有关:bugs.php.net/bug.php?id=69875 您是否还收到其他错误?
-
@crypticツ 是的,看起来和我的日志一模一样。
-
@Rob_vH 正如我在最初的帖子中提到的那样,我在 php.net 上打开了一个错误报告。你是对的,所以我在我的问题中链接了错误报告,但我让问题开放,因为正如你所看到的,似乎有些人最终遇到了同样的问题。
-
通过:bugs.php.net/bug.php?id=69850 PHP 开发人员已确认 UDS(Unix 域套接字)在 PHP7 中已损坏。所以现在我们只是等待它在下一个标记版本中得到修复。此后可以关闭或删除此问题,因为它不再影响获得最新测试版本的人。