Nginx+PHP-FPMの環境において、PHPコードからflush()を実行してもecho出力がすぐに表示されなかったので、対策を調べました。
結論
Nginx の設定ファイルにて fastcgi_buffering
を off
にします。
/etc/nginx/conf.d/default.conf
等を開き、次のような感じで設定します。
server { ... location ~ \.php$ { fastcgi_buffering off; ... } }
上記によって、Nginxがデータをバッファリングするのを防止することができます。
備考
WordPress環境で動作を確認しました。
参考サイト
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffering
https://serverfault.com/questions/488767/how-do-i-enable-php-s-flush-with-nginxphp-fpm