PHP Warning: Cannot modify header information – headers already sent in Unknown on line 0

PHP製のWebアプリへHTTPリクエスト投げるたびに、下記エラーがアパッチのエラーログに出ていた。

PHP Warning:  Cannot modify header information - headers already sent in Unknown on line 0

StackOverflowのこの投稿 に記載されているように、様々な原因が考えられる。特に、Unknown on line 0 となっている場合、多くの場合で読み込んでいるモジュール等で何かが起こっている可能性があるらしい。

このたび設定していたPostfixAdminの場合、mb_output_handlerとPostfixAdmin(の内部で使われているテンプレートエンジンまわりの処理)の相性が悪いらしく、php.iniで

output_handler = mb_output_handler

という設定になっている場合に発生している様子だった。

よって、.htaccessで特別に対策した。

# echo "php_value output_handler none" > /var/www/postfixadmin/.htaccess