これからバグフィックスのカリキュラムに移る方は、試しに
http://localhost/LetsEngineer/curriculum/3-3/bugTest/test2/
にアクセスしてみましょう。
下図の画面か、もしくは真っ白かと思います。(ブラウザの設定によって異なります。)
ここからバグを修正しろ、と言われても、ヒントも無しでソースコードを読むしかありません。
そこでバグ修正の際に、ヒントを見つけるためにエラーログを出力させましょう。
エラーログとは、「 〜〜の理由でエラーが発生しました 」という情報のことです。
XAMPPの方は前準備があるので注意してください。
XAMPPの前準備
XAMPPではPHPのエラーログの設定が中途半端な状態となっています。
このままではエラーログを出力することが出来ない状態なので、設定を完了させましょう。
設定はエクスプローラからでも出来るのですが、せっかくなので 全てUNIXコマンドで やってしまいましょう。
※こういう時にコマンドから逃げていては上達が遠のきますよ。
※以降の画面説明は全てWindows10のものです。
Windows7、Windows8の方は、適宜読み替えをお願い致します。
まずはスタートメニューからGitBashを立ち上げましょう。
「G」のところにあるはずです。
(写真)
GitBashに、以下のコマンドを入力していきます。
# xamppフォルダ内のphpディレクトリに移動
$ cd /c/xampp/php
# 標準のままではlogsディレクトリが存在しないはずなので、一旦それを確認
$ ls | grep logs
# logsディレクトリを作成
$ mkdir logs
# logsディレクトリが作られたことを確認
$ ls | grep logs
# 今作ったばかりのlogsディレクトリに移動
$ cd logs
# php_error_logファイルを新規作成
$ touch php_error_log
# php_error_logファイルが出来ていることを確認
$ ls
エラーログを確認してみる
それでは実際にやってみましょう。
エラーログを追う方法はいくつかありますが、今回は最もポピュラーなtail -f
コマンドを使用してみます。
まず、Mac、Windowsでそれぞれ、下記のコマンドを打ってみてください。
Mac(ターミナル)
$ tail -f /Applications/MAMP/logs/php_error.log
Windows(Gitbash)
$ tail -f /c/xampp/php/logs/php_error_log
そうすると、下図のように全く別の画面になったと思います。
(人によって画面の内容は異なります。)
これはMAMP / XAMPP上で実行したPHPでエラーが発生した場合に、ここにエラーの内容が書き込まれていきます。
試しに研修課題をやってみる
今から行うバグ修正を行うを行うの課題を実行してみます。
課題未着手であれば、このソースコードにはバグ(エラー)があります。
実際にアクセスしてみると、もちろん変な画面です。
先ほどのログを見てみましょう。
何かに気づきませんか?
そうです。文章が増えています。
これは、今実行したPHPのエラー内容です。
エラーログを読むヒント
このエラーログを読むと今回の研修は早く終わるかもしれません。
そのため、今回のエラーログに何が書いてあるのか、どういう対応をすれば良いのか、ということについては解説しません。
ただの英語なので、各自で読んでみましょう。
ちなみに、どういった内容が書いてあるのかのヒントを下記に示します。
- どのファイルでエラーが起こったのか
- そのファイルの何行目がおかしいのか
- どういった種類のエラーか
なお、エラーによって記載される内容は異なります。
画面を元に戻す
今はtail -f
による ログ追従モード です。
元の画面に戻るためにはCtrl
+ c
を押しましょう。
慣れてきたエンジニアは、ターミナルとテキストエディタ、ブラウザを使い、
- コードを書く
- ブラウザで実行してみる(エラーが起こる)
- エラーログを確認
- コードを修正
という手順で作業を進めます。
ぜひ、やってみてください!