【问题标题】:PHP-FPM fastcgi_finish_request() not working as expectedPHP-FPM fastcgi_finish_request() 没有按预期工作
【发布时间】:2011-10-10 06:59:00
【问题描述】:

我阅读了@Dmitri 的原始example of how to use fastcgi_finish_request() 问题并尝试按照我在 index.php 中的 Kohana 3.1 设置中的答案中的示例进行操作:

echo Request::factory()
    ->execute()
    ->send_headers()
    ->body();

紧接着,我补充说:

fastcgi_finish_request();
sleep(5);

最初,我认为它有效。但后来我意识到只为每个 other 请求工作。示例:

  1. 导航到本地主机(工作,无暂停)
  2. 点击链接到本地​​主机/控制器(暂停 5 秒)
  3. 单击另一个指向 localhost/控制器的链接(再次工作,没有暂停)

然后就这样继续下去。我错过了什么吗?可能是 php5-fpm 配置文件中的设置?

使用 Suhosin-Patch、Nginx 运行 PHP 5.3.5-1ubuntu7.2

【问题讨论】:

  • 对不起,我几乎是在一年前问过这个问题。我再也找不到相关的代码了,但我会尽快更新更新这个问题。感谢您的回复!

标签: kohana-3 php


【解决方案1】:

在致电fastcgi_finish_request() 之前请致电session_write_close() 以解决此问题:

session_write_close();
fastcgi_finish_request();
sleep(5);

【讨论】:

  • 很遗憾,事实并非如此。
  • 我遇到了同样的问题,这有助于解决我的问题。太感谢了。花了几个小时试图解决这个问题。
【解决方案2】:

在服务器响应本身(您可以使用 fastcgi_finish_request 函数控制并确保它以这种方式工作)旁边,可能有其他资源阻止(下一个)脚本立即开始。

这可以是文件锁定(在会话中很流行)和其他东西。由于您没有共享太多代码,而且我们没有看到您的 Kohana 配置,您应该看看您使用了哪些组件以及它们获取了哪些资源。

【讨论】:

    【解决方案3】:

    是不是因为你的 Web 服务器一次只处理一个 php 实例,而之前的脚本仍然令人兴奋?

    【讨论】:

      猜你喜欢
      • 2013-06-19
      • 1970-01-01
      • 2014-03-12
      • 2012-01-16
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多