【Laravel】phpstormでxdebugを使う【XAMPP】
phpstormでxdebugでも入れようと軽い気持ちで作業し始めたものの、かなりの時間がかかってしまったので自分の備忘録として手順を残しておきます。
xdebugのバージョンにより手順が違うので、下手にブログ読み漁って余計な作業をしたことが間違いだった気がする。
公式の手順に従っていけばスムーズに構築完了するはずです。
XAMPPを使った例ですが、もちろん使わずとも設定可能です。その場合はドキュメントのパスなどを読み替えてください。
【バージョン情報】
OS : windows
php 7.3
xampp 3.2.4
xdebug 3.1.5
xdebugのインストール
xamppを利用しているとインストール済みだと思いますが、バージョン3をインストールしたい場合などは公式サイトから新たに入手します。
ただ、このインストール方法にも癖がありphpのバージョンなどによりインストールするxdebugのバージョンも異なってくるなど面倒です。
windowsの場合にはこちらのxdebugの公式サイトからインストールするべきバージョンをサイト側で確認してくれます。
コマンドを叩いてphp -iの情報をすべてコピペするか、phpinfo()の情報をすべてコピペしてAnalyseします。
難しいことは考えず、しばらく待ちます。
すると下記の通りダウンロードすべきバージョンを示してくれます。こちらはすでにインストール済みの場合の表示ですが、未インストールでも同じようンにここからダウンロード可能です。
- Download php_xdebug-3.1.5-7.3-vc15-x86_64.dll
これがダウロードするべきファイルです。その下にはダウンロード後にするべきことも記載してくれています。
- Move the downloaded file to C:\xampp\php\ext, and rename it to php_xdebug.dll
私の環境はxamppからphpを実行しているので、C:\xampp\php\ext にファイルを移動して php_xdebug.dll というファイル名にリネームせよと教えてくれています。
- Update C:\xampp\php\php.ini to have the line:
zend_extension = xdebug
php.iniファイルを編集して、下記コードを追加します。
zend_extension = xdebug
これでxamppからxdebugを利用する準備ができました。
phpstorm側のxdebug設定
まずはphpstormのserver設定です。
File -> Settings -> PHPよりCLI Interpreterの設定を行います。xamppを利用しているのであれば下記の通りになります。
phpを直接呼び出している場合は、phpまでの絶対パスを設定します。
次にwebサーバの設定です。
File -> Settings ->Server より下記の通り設定します。
こちらはローカルでサーバを起動している場合の設定です。サーバの起動場所に合わせて適宜設定ください。
php.iniの設定
次に、phpstorm側でxdebugからの情報を受け取るための設定を行います。
分かりづらいのですがphpstormのサイトにも手順は記載されています。
さきほど設定したphp.iniですが、phpstorm側の設定にも必要なので下記を追記します。
zend_extension=xdebug xdebug.mode=debug xdebug.client_host=127.0.0.1 xdebug.client_port=9000
ポート番号はデフォルト9003ですが、なぜかこのままではうまくいかなかったので9000に設定しています。
ポイント
xdebugはバージョン3からポート番号のデフォルトは9003に変わっています。
そのままでうまくいかなかったら9000に変更してみましょう。
php debugの設定
phpstormでリモートデバッグの設定を行います。
Run -> Edit Configuratioins から Add New Configuration で新規の設定を作成します。
作成するのはPHP Remote Debugです。
設定内容は下記の通りです。Serverには先ほど作成したlocalhostを選択します。
IDE keyはどこで使うのかよくわかりませんでしたがPHPSTORMと設定しておきます。
ブラウザでのデバッグ拡張機能導入
最後に、ブラウザにデバッグ拡張機能を導入します。
phpstormの解説を参考にご自身の利用されているブラウザを選んでインストールしていきます。
先ほど設定したlocalhostのページを表示している際には、ブラウザの虫マークが緑色になっていれば設定は完了しています。
ブレークポイントの設定
ブレークポイントの設定は簡単です。
処理を止めたい行の行数部分をクリックすれば赤丸がつきますので、これでブレークポイントの設定が完了です。
ブレークポイントを設定したら実際に処理を動かしてみましょう。
先ほど設定したブレークポイントはcontrollerですので、画面表示をさせてみます。
そうすると画面表示前に処理が止まり、このように変数の情報などが取得できます。
まとめ
laravelでcognito連携の検証でもしてみたかったのに、環境構築で思った以上に時間をかけてしまった、、
環境構築などに時間をかけず本来やるべきことに時間をかけられるように、こういった作業は一度やったら忘れないようにしたいですね。