私はPHPでプログラム制作を行う際に、ローカル環境のXAMPPで開発しています。
致命的なエラー等で実機サーバーに迷惑をかけないことと、修正・反映がやりやすいためです。
普段は文法エラー等があった場合は、画面にfatal error等が表示されるため、すぐ直せます。
ところが「HTTP ERROR 500」が表示され、エラーの原因がわからないケースがありました。
こんな時はPHPのエラーログを見ればよいのですが、ログが表示されませんでした…。
色々調べてPHPエラーログを表示させることができましたので、忘備録として記録いたします。
今回の記事でわかること
- XAMPPでPHPエラーログを表示させる方法
- XAMPPでPHPエラーログを出力させる設定方法
きっかけはHTTP ERROR 500が表示されたことでした
PHPでの開発は、通常文法エラー等は画面に表示されます。
ところが、こんな表示になりました。
XAMPPでこのエラーはなかなか出ないのですが、今回は出ました。
しかし、これだけではどこに原因があるのかわかりません。
そこでPHPのエラーログを見てみようと思いました。
PHPのエラーログの見方
XAMPPでPHPのエラーログを見る方法は簡単です。
ApacheのLogsボタンからPHP(php_error_log)を選びます。
実際に表示してみたらこうなりました…
ログ出力どころか、ログフォルダも無いと怒られました…
問題を解決するためには、エラーログを解析することが肝要です。
いろいろ調べてみると、エラーログ出力自体が「OFF」になっているようでした。
そこで、PHPエラーログが出力されるように、XAMPPを設定しました。
XAMPPでPHPエラーログを出力する設定方法
(1)ログフォルダを作成する
どういうわけか、ログフォルダがなかったので、XAMPP\PHPフォルダに「logs」フォルダを手動で作成しました。
※logsフォルダが既にある場合は、省略してOKです。
(2)PHP.iniファイルを開く
XAMPPでPHP.iniファイルを開きます。
ApacheのConfigボタンから、PHP.iniを選択します。
(3)log_errsオプションをOnに設定する
PHP.iniの「log_errors」オプションがOffになっていたら、Onに設定します。
このオプションを設定することで、PHPのエラーログが出力されるようになります。
(4)error_logオプションのコメントを外します
error_logオプションがコメント化されていた場合は、コメントを外します。
PHP.iniの「log_errs」と「error_log」の2カ所を設定すればOKです。
(5)XAMPPを再起動します
PHP.iniの設定が完了したら、保存して閉じます。
このままだと現在のXAMPP状態には反映されないので、一度XAMPPを再起動します。
エラーログを見てみたところ、ログが出力されていました。
早速現象を再現させ、XAMPPのLogsボタンから、PHPのエラーログを開いてみました。
きちんとエラーの原因となった情報が出力されていました。
ちなみに、クラスの宣言をしていなかったことが原因でエラーが発生していました。
プログラムの問題は原因個所を突き止める方法が分かれば解決できます
プログラム開発は今まで幾度となく行ってきました。
バグ(不具合)を見つけては直しの連続です。
ただ今回バグの情報・手がかりが全くない状態になり、お手上げになりました。
そんな時に役に立つのがログ(記録)です。
自分でもあらゆる手を尽くして、原因を調べてきましたが、改めてログの重要性を認識しました。