【问题标题】:No script name passed to php-fpm via nginx/FastCGI没有脚本名称通过 nginx/FastCGI 传递给 php-fpm
【发布时间】: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 中已损坏。所以现在我们只是等待它在下一个标记版本中得到修复。此后可以关闭或删除此问题,因为它不再影响获得最新测试版本的人。

标签: php nginx fastcgi


【解决方案1】:

我不确定这是否可以被视为答案,但此时,当我撰写此答案时,您提出的错误已被 PHP 团队确认:: p>

[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

更新:我刚刚看到你也意识到了这一点!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 2017-01-19
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多