У меня установлены php 5.5 (fpm) и nginx 1.10 (gzip настроен на 1). Работает на убунту.
Когда я "повторяю" большой вывод (более 2 мб), он резко останавливается на отметке около 520 кб.
Но та же самая программа, когда я запускаю на php-cli, без проблем «отображает» все это на терминале.
Также загрузка дампов mysql через администратор останавливается на полпути. Я имею в виду, что загружаются неполные файлы (если правильный общий вывод больше на пару МБ).
Как это исправить?
В моей программе все в порядке. Даже простой, достаточно длинный цикл for, извергающий эхо «hello world», останавливается на определенном байтовом ограничении.
Я не уверен, вызвана ли эта проблема стороной nginx или стороной php.
Попробуйте отключить буферизацию:
fastcgi_buffering off;
По умолчанию он включен.
Это даст вам немного больше контроля из PHP, но имейте в виду, что операции очистки, которые ранее не блокировались, теперь могут блокироваться. Это также решит любые проблемы с буферизацией, с которыми может столкнуться Nginx - я бы положил свои деньги на это. Буферы Nginx эффективны, но непостоянны.