PHPエラーログを5秒で見つける方法

投稿日: 2023/05/06

PHP 


error_log 様
いつもお世話になっております。

新しく環境を作ったときにあなたがどこにいるかわからなくなりました。
急いでいるので5秒でありかを教えてください。




PHPエラーログとは?

error_logがはじめましての方へ。

PHPエラーログは、PHPアプリケーションで発生したエラー情報を保存するファイルです。
これらのエラー情報は、アプリケーションのデバッグや問題解決に役立ちます。

エラーログには、以下のような情報が含まれます。

  • エラーの発生日時
  • エラータイプ
  • エラーメッセージ
  • エラーの発生場所

PHPエラーログの出力先の場所を調べる方法

【最速】コマンドで調べる方法

ターミナルを開いて、次のコマンドを実行してください。

$ php -r "echo phpinfo();"  | grep "^error_log"

error_log => /var/log/php_errors.log => /var/log/php_errors.log

/var/log/php_errors.logにあることがわかりました。以上、ありがとうございました。


ブラウザで調べる方法

ブラウザ上でもphpinfo()関数を利用して、エラーログの出力先を調べることもできます。

<?php
phpinfo();
  1. phpinfo()関数を呼び出します。
  2. "error_log"というキーワードを検索します。
  3. "error_log"が設定されている場合、そのパスがエラーログの出力先となります。

おまけ。php.iniの場所を調べつつエラーログの場所を調べる方法

$ php -r "echo phpinfo();" | grep "php.ini"

Configuration File (php.ini) Path => /opt/homebrew/etc/php/7.4
Loaded Configuration File => /opt/homebrew/etc/php/7.4/php.ini

php.iniの場所がわかったので、それをgrepします。

$ cat /opt/homebrew/etc/php/7.4/php.ini | grep "^error_log"

error_log = php_errors.log

ちなみに、この例では絶対パスで書かれていないので、PHPが実行された同パスに、php_errors.logというファイルが作られるということがわかります。


エラーログの設定方法

エラーログの出力先を変更したいときは、php.iniを編集しましょう

一例として、ファイルに出力する方法とメールで送信する方法があります。


エラーログをファイルに出力する方法

以下はファイルに出力する場合の例です。

error_log = /var/log/php_errors.log

エラーログをメールで送信する方法

エラーログをメールで送信するには、error_logに加えてmail.force_extra_parametersも変更してください。

以下は、php.iniファイルでエラーログをメールで送信する場合の例です。

# ファイルパスではなくメールアドレスを設定する
error_log = <メールアドレス>

# SMTPサーバーの設定を追加する
mail.force_extra_parameters = "-f<メールアドレス> -SMTP smtp.example.com -p 587 -auth-username <メールアドレス> -auth-password <パスワード>"

終わりに

PHPエラーログの出力先を5秒で調べる方法でした。

error_log様、いつもエラーをたくさん吐いてくれてありがとうございます。
これからもどんどん吐いてください。

引き続きよろしくお願いいたします。




このエントリーをはてなブックマークに追加     

profile
profile

洋ちゃん

@c5apple

システムエンジニアをしています。二児の父です。

夢は天井から床までビッシリ並んだ本棚のある書斎を作ること!