Docker でサーバー側のエラーログ(PHP Warning)を出力 のサムネイル
  1. 銀ねこアトリエ
  2. 海外ノマドブログ
  3. ウェブ制作
  4. Docker
  5. Docker でサーバー側のエラーログ(...

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表 にまとめています。