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();
- phpinfo()関数を呼び出します。
- "error_log"というキーワードを検索します。
- "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様、いつもエラーをたくさん吐いてくれてありがとうございます。
これからもどんどん吐いてください。
引き続きよろしくお願いいたします。