別のサーバーだとheaderの前にエラーが出て「Message: Cannot modify header information - headers already sent by」になって終わっちゃうのに、自分のサーバーだとこれが引っかからなくて不思議だなーって思ってたら
output.bufferingの値が設定されていた。なんぞこれ。
output_buffering boolean/integer このディレクティブを 'On' と設定することにより、全てのファイルに 関して出力バッファリングを有効にすることができます。 特定の大きさにバッファの大きさを制限したい場合、このディレクティブの 値として 'On' の代わりに最大バイト数(例:output_buffering=4096) を使用することができます。 PHP-CLI ではこのディレクティブが常に Off となります。
ということ。試しに、var_dump(ob_get_status());exit; してみたら
array(7) { ["name"]=> string(22) "default output handler" ["type"]=> int(0) ["flags"]=> int(20592) ["level"]=> int(0) ["chunk_size"]=> int(4096) ["buffer_size"]=> int(69632) ["buffer_used"]=> int(0) }
って出てきた。なー。デフォルトでob_start()してたってことなのね。
として対策完了。