有点晚了,但对人们来说是个好信息。根据我使用 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 通信以记录错误。