没有脚本名称通过nginx / FastCGI传递给php-fpm

时间:2015-06-15 11:50:49

标签: php nginx fastcgi

我在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(),第277行:[pool www0] child 2813,script''(request:“”)执行超时(120.018160 sec),终止

在我的php-fpm日志文件和

  

[错误] 1889#0:* 4 recv()失败(104:对等连接重置)从上游读取响应头,客户端: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-fpm使用PHP 5.x和7.0之间有什么区别吗?

更新

至少我不是唯一一个正面临这些问题的人。我在这里打开了一个错误报告:https://bugs.php.net/bug.php?id=69850

此处已经报告了一个非常相似(可能相同)的错误:https://bugs.php.net/bug.php?id=69875(对于@crypticツ而言)

更新2

Try the newest alpha2 即可。那里的错误是固定的。 Unix套接字现在再次像魅力一样工作。

1 个答案:

答案 0 :(得分:3)

我不确定这是否可以被视为答案,但此时,当我写这个答案时,你提出的错误被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

更新:我刚看到你也知道同样的事情!