【初心者向け】PHPエラー確認方法
Contents
エラーの発生の確認方法
方法(1)ブラウザ上にエラーメッセージを直接表示
下記のコードでdisplay_errors
をOn
にすることで、ブラウザ上にエラーメッセージが直接表示されます。
※ 本番環境では、セキュリティ上の理由からエラーを画面に表示しないことが推奨されます。
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
1. ini_set('display_errors', 1);
- 説明:
display_errors
は、PHPが実行時に発生したエラーをブラウザに表示するかどうかを制御する設定です。 - 値:
1
は「On」を意味し、エラーが発生した場合、ブラウザ上にエラーメッセージが表示されるようにします。 - 使用目的: 開発中にエラーを直ちに確認できるようにするためです。たとえば、コード内で未定義の変数を使用した場合、すぐにそのエラーがブラウザ上で表示されます。
2. ini_set('display_startup_errors', 1);
- 説明:
display_startup_errors
は、PHPの起動プロセス中に発生したエラーを表示するかどうかを制御します。 - 値:
1
は「On」を意味し、PHPの初期化中に発生したエラー(たとえば、拡張モジュールのロードに失敗した場合など)をブラウザ上に表示します。 - 使用目的: サーバーの設定や環境が原因でPHPが正常に動作しない場合、その原因を特定するためです。通常、開発環境でのみ使用されます。
3. error_reporting(E_ALL);
- 説明:
error_reporting
関数は、どのレベルのエラーを報告するかを制御します。 - 値:
E_ALL
は、すべてのエラー、警告、通知を報告する設定です。具体的には、致命的なエラーから警告、注意すべき軽微な問題まで、すべての問題を報告します。 - 使用目的: 開発中に見逃してはいけないすべてのエラーや警告を表示するためです。
方法(2)php.iniの設定を変更する
php.iniファイルで以下の設定を確認・変更します
display_errors = On
error_reporting = E_ALL
方法(3)エラーログの確認
エラーログの確認手順は下記のとおりです
1)php.iniファイルからエラーログファイルの場所を確認
PHPの設定ファイル「php.ini」で指定された場所にログが記録されます。そのためまずphp.iniの確認をします
〇phpinfo()関数でphp.iniの確認
(phpinfo()と記述しブラウザでそのファイルにアクセスすればphpinfoが表示されます。)
〇Windows PowerShell(VSCodeのターミナルとか)で手順php.ini
の場所を確認する際は下記コマンド
php -i | findstr /c:"Loaded Configuration File"
>>
Loaded Configuration File => C:\tools\php82\php.ini
2)php.iniを編集
; error_reporting
Default Value: E_ALL ;すべてのエラー、警告、および通知を報告する ことを意味します
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors ;エラーが発生した際に、その情報がログファイルに記録されます
error_log = "C:\php_error\php_error.log" ;エラーログの出力先を指定します
; Default Value: Off
; Development Value: On
; Production Value: On
※Dockerで開発している場合
Dockerを使用してPHP開発を行っている場合、実際にはホスト上にphp.ini
ファイルを作成していない可能性が高いです。一般的にphp.iniのデフォルトの設定を「Docker イメージ」内部に組み込まれています。
→カスタム php.ini ファイルの作成(カスタム設定の追加をします)
(1)
Dockerプロジェクトにphp-custom.iniファイルを作成
log_errors = On
error_log = /var/log/php/php_error.log
(2)
php_erorrフォルダの作成
(3)
docker-compose.yml の修正: web
サービスの volumes
セクションの修正
services:
web:
# ... 他の設定 ...
volumes:
# ... 他の設定 ...
- ./php-custom.ini:/usr/local/etc/php/conf.d/php-custom.ini
- ./php_error:/var/log/php
(4)
Docker 環境の再起動
docker-compose down
docker-compose up -d
(5)
PHPファイルを実行し、エラーの発生を確認
docker-compose exec web php /var/www/html/[エラー発生しているファイル]
(6)
php_errorフォルダ内に作成されるphp_error.logにエラー内容がはかれます
Xdebug
Xdebugの使用: より高度なデバッグには、Xdebug拡張機能を使用します。これはより詳細な情報を提供しますが、設定が少し複雑です。 ブラウザの開発者ツール: ブラウザの開発者ツールを使用して、ネットワークタブでPHPスクリプトのレスポンスを確認します。