How to disable PHP output buffering

gaspy nginx-forum at nginx.us
Wed Feb 12 09:41:50 UTC 2014


Hi,

I know this has been asked before, but I could not find a definitive answer.
I tried different solutions, nothing worked.

I have a PHP script that has to do time intensive operations and provide a
status update from time to time. No way around it.
I built a sample PHP script:
<?
@ini_set('zlib.output_compression',0);
@ini_set('implicit_flush',1);
@ob_end_clean();
ob_end_flush();
$i=0;
while($i<10)
{
	echo "$i\n";
	ob_flush();
	flush();
	sleep(1);
	$i++;
}
?>

I have output_buffering = Off in php.ini

In nginx I have
		location ~ \.php$ 
		{
			try_files		$uri =404;
			fastcgi_pass	unix:/var/run/php5-fpm.sock;
			fastcgi_index	index.php;
			fastcgi_param 	SCRIPT_FILENAME $document_root$fastcgi_script_name;
			include			fastcgi_params;

			gzip off;
			proxy_buffering off;
			fastcgi_keep_conn on;                     
			fastcgi_buffers       128 1k;  # up to 1k + 128 * 1k
			fastcgi_max_temp_file_size 0;
			fastcgi_buffer_size   1k; 
			fastcgi_buffering off;
		}
(yeah, I put everything and the kitchen sink)

Server is Ubuntu 13.04, nginx 1.5.9, php 5.4.9

Any ideas?

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,247451,247451#msg-247451



More information about the nginx mailing list