4

我想使用该fastcgi_finish_request()功能。

我的服务器上安装了 CPanel,PHP 和 Apache 都是通过它配置的。由于我无法手动编辑 Apache 或 PHP 配置(因为 CPanel),我在 WHM 中使用了 easyApache 来构建它以获得 fastcgi。

我看到了一个名为 Mod FCGID 的选项,所以我启用了它。

在启用该选项的情况下重建 PHP 和 Apache 后,undefined function调用该fastcgi_finish_request函数时我仍然会调用。

4

2 回答 2

10

有点晚了,但对人们来说是个好信息。根据我使用 PHP 5.5.7 的经验。

PHP 使用 mod_php(标准 Apache):

ob_start();
header("Connection: close\r\n"); 
header('Content-Encoding: none\r\n');

// your code here

$size = ob_get_length();
header("Content-Length: ". $size . "\r\n"); 
// send info immediately and close connection
ob_end_flush();
flush();

// run other process without the client attached.

对于使用 FastCGI 和 PHP_FPM 的 PHP:

// your code here

fastcgi_finish_request();

// run other process without the client attached.

请注意,对我们来说,在fastcgi_finish_request()被执行之后,log_error不再起作用。我认为这是因为与 Apache 的连接也被切断,它无法与 FastCGI 通信以记录错误。

于 2014-01-24T23:31:30.177 回答
8

fastcgi_finish_requestPHP-FPM SAPI 特定函数,在标准 php-fcgi 二进制文件中不可用(由 Apache [mod_fcgid, mod_fastcgi], nginx, lighttpd 等使用)。

于 2012-10-19T23:30:41.377 回答