
Docker でサーバー側のエラーログ(PHP Warning)を出力
FAQ
- PHP Warning が画面には表示されず、ログファイルにだけ記録されるのはなぜですか?
- php.ini の設定で
display_errors = Offかつlog_errors = Onになっているためです。開発環境では php.ini の設定 を一時的にdisplay_errors = Onにすると画面上でも即座に確認できますが、本番環境ではセキュリティ上、Offのままログで監視するのが鉄則です。
- tail -f コマンドでログを監視しているのに、エラーを発生させても何も表示されません。
- ログファイルの書き込み権限(パーミッション)が不足しているか、PHP-FPMが参照しているログパスが間違っている可能性があります。コンテナ内で
ls -l /var/log/php_errors.logを実行し、実行ユーザー(www-dataなど)に書き込み権限があるか確認してください。詳細は リアルタイムでモニタリングする をご覧ください。
- Dockerコンテナ全体のログをまとめて確認する方法はありますか?
- 特定のファイルだけでなく、コンテナの標準出力を確認したい場合は
docker logs -f [コンテナ名]コマンドが便利です。PHP-FPMの設定によっては、エラーログを標準出力にリダイレクトさせることで、ファイルを開かずにターミナル上で一括管理することも可能です。
- Cannot modify header information... という Warning の解決策は?
- これは
header()関数の前に、意図しない空白や HTML 出力、あるいはechoが行われている場合に発生します。ログを監視しながら、エラーが発生した行の直前に余計な出力がないかチェックしましょう。代表的な Warning への対処は 一般的なPHP Warning表 にまとめています。




