PHPのデバッグツール「Xdebug」を導入時にかなりハマッてしまいました。ネットであまり有益な情報を得れなかったので、同じように苦労する方のためと自分の備忘録も兼ねて記事にします。
Xdebug導入の前提条件
環境は以下の通りです。
- Windows7 64bit
- PHP Version 7.2.10
- Visual Studio Code(以下VSCode)
- IIS
PHPはインストール済みとします。
VSCodeを使ってPHPをデバッグします。
構築済みのIISのローカル環境で動作させます。
Xdebugの導入方法
Xdebugをインストールするには、まず自分の環境に合ったXdebugをダウンロードする必要があります。
…必要がありますが、上のサイトに行ってみてどれをダウンロードすればいいかわかりますか?
僕は自分でWindowsとPHPのバージョンから自分で判断して導入してうまくいかずにハマッてしまいました。
あなたは同じ失敗しないでください。なので簡単に導入する方法をご紹介します。
下記のサイトにphpinfo()の内容をコピペするだけOK。
具体的な方法は以下の通り。
phpinfo()の内容をコピー
phpinfo()を開き、「ctrl + A」で全選択します。
先ほどのサイトにアクセスする。
phpinfo()の内容をペーストする
「ctrl + C」でテキストエリアにペースト。
分析する
「Analyse my phpinfo() output」をクリックする。
手順どおりに進める
画像の下側にあるのがXdebugの導入手順です。
表示されたdllをダウンロードし、手順に書かれた指示通りに設定する。
1.に表示されているdllをダウンロードする。クリックするだけダウンロードできます。
2.の手順どおりにダウンロードしたdllファイルを、PHPフォルダ内のextフォルダに格納する。
3.の通り、「php.ini」を編集する。
4.サーバーを再起動して完了。
VSCodeでデバッグしてみる
実際にデバッグして確認してみましょう。
VSCodeで今回デバッグをするファイル「test.php」を開きます。
ここで注意してほしいのは、「ファイルを開く」からではなく「フォルダーを開く」から開いてください。VSCodeでデバッグするにはフォルダから開く必要があるようです。
フォルダを開いたら、デバッグを開始してブレークポイントを設置してください。ブレークポイントを設置してからデバッグを開始しても大丈夫です。ブレークポイントはダブルクリックで設置できます。
デバッグした状態で「test.php」をブラウザから開きます。今回はIISでローカル環境を構築して、そこに「test.php」を格納しているので、「http://localhost/test.php」にアクセスしました。
少し待つと、ブレークポイントまで処理が進んだところで止まることが確認できます。
ちゃんと変数に文字列が格納されていることもわかりますね。
このまま「F10」で処理を次に進めると「echo $test」でブラウザ上に「Hello world」が表示されました。
まとめ
今回はPHPをXdebugでデバッグしてみました。
僕は丸1日くらいハマッてしまい、かなり時間をロスしてしまいましたので、少しでも同じように困っている方の参考になれば嬉しいです。