php に xdebug を入れて phpstorm でデバッグする


php に xdebug を入れる

php -i | grep xdebug
php --version | grep xdebug

などにより php に xdebug が入っていないことを確認します。

pecl install xdebug

により xdebug をインストールします。

自分の環境では初めはインストールに失敗し、
https://www.findxfine.com/programming/php/995561772.html
を参考にして解決しました。

インストールに成功すると

php -i | grep xdebug

などで xdebug の行が出てくるかと思います。

次に php.ini で xdebug のパラメータを設定します。
以下のコマンドで php.ini の場所がわかります。

php -i | grep php.ini
php.ini
xdebug.remote_enable = 1

など、環境に合わせて追記していきます。

サーバーを起動したまま作業しているようであれば、ここでサーバーを再起動して php.ini をリロードします。

phpstorm でデバッグする

Preference > language & flameworks > PHPへ移動します。
CLI Interpreter に使用する php を追加します。

ここで自分は少し嵌ったのですが

which php

等で表示されるパスは実際の実行ファイルへのシンボリックリンクであるため、実際の実行ファイルのパスを入力するようにしましょう。

自分の場合は/usr/local/Cellar/php/7.3.9/bin/phpでした。

次にデバッガを設定します。
Preference > language & flameworks > PHP > Debug
より Debug Port を設定することができます。
php.ini を弄っていなければデフォルトは9000なので、この値を変更する必要はないはずです。

次にサーバーを設定します。
Preference > language & flameworks > PHP > Severで登録できます

  • Name: なんでもよいです
  • Host: localhost (phpやフレームワークのビルトインサーバーを使って開発している場合)
  • port: 80
  • Debugger: Xdebug

にしましょう

次に run/debug configurations に移動します。画面上部バー中央やや左よりのボタンより移動できます。

ここで先ほど作成したサーバーを選択し登録します。IDEKEYの箇所は入力しなくても大丈夫でしたが、どこかの記事で入力しないとエラーが出るというのも見たので、エラーが出るようであれば上部のボックスにチェックを入れると入力できるようになります。

上記ボタンの右側のにある、虫のようなマークと電話のようなマークでデバッグをスタートさせることができます。

最後に楽にデバッグに移行できるようブラウザに拡張機能をダウンロードします。
https://www.jetbrains.com/help/phpstorm/2019.3/browser-debugging-extensions.html?utm_campaign=PS&utm_content=2019.3&utm_medium=link&utm_source=product
このリンクより chrome と firefox の拡張機能のダウンロードページへ移動できます。

拡張機能を有効化し、目的のページにアクセスするとデバッグすることができます。

参考にしたサイト