【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します。

xdebugインストール時のwizard画面 phpinfoの情報を登録すると適切なバージョンを提案してくれる

難しいことは考えず、しばらく待ちます。

すると下記の通りダウンロードすべきバージョンを示してくれます。こちらはすでにインストール済みの場合の表示ですが、未インストールでも同じようンにここからダウンロード可能です。

xdebugのwizard結果
  1. Download php_xdebug-3.1.5-7.3-vc15-x86_64.dll

これがダウロードするべきファイルです。その下にはダウンロード後にするべきことも記載してくれています。

  1. 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 というファイル名にリネームせよと教えてくれています。

  1. 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までの絶対パスを設定します。

phpstormのphp設定

次にwebサーバの設定です。

File -> Settings ->Server より下記の通り設定します。

こちらはローカルでサーバを起動している場合の設定です。サーバの起動場所に合わせて適宜設定ください。

phpstormの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です。

phpstorm remote debugの設定

設定内容は下記の通りです。Serverには先ほど作成したlocalhostを選択します。

IDE keyはどこで使うのかよくわかりませんでしたがPHPSTORMと設定しておきます。

phpstorm debug configration

ブラウザでのデバッグ拡張機能導入

最後に、ブラウザにデバッグ拡張機能を導入します。

phpstormの解説を参考にご自身の利用されているブラウザを選んでインストールしていきます。

先ほど設定したlocalhostのページを表示している際には、ブラウザの虫マークが緑色になっていれば設定は完了しています。

ブラウザ拡張機能の設定

ブレークポイントの設定

ブレークポイントの設定は簡単です。

処理を止めたい行の行数部分をクリックすれば赤丸がつきますので、これでブレークポイントの設定が完了です。

ブレークポイントの設定方法

ブレークポイントを設定したら実際に処理を動かしてみましょう。

先ほど設定したブレークポイントはcontrollerですので、画面表示をさせてみます。

そうすると画面表示前に処理が止まり、このように変数の情報などが取得できます。

デバッグ結果の表示

まとめ

laravelでcognito連携の検証でもしてみたかったのに、環境構築で思った以上に時間をかけてしまった、、

環境構築などに時間をかけず本来やるべきことに時間をかけられるように、こういった作業は一度やったら忘れないようにしたいですね。

コメントを残す