Help us understand the problem. What is going on with this article?

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 の拡張機能のダウンロードページへ移動できます。

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

参考にしたサイト

gyuta
にじゅういっさい
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away