Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@_hiro_dev

Laravel Homestead + PhpStormでXdebugを有効化する

環境

  • MacBook Pro
  • Vagrant 2.2.9
  • Laravel Homestead 9.5.1
  • PHP 7.4.5
  • Xdebug 2.9.3
  • PhpStorm 2020.1.2 Preview

事前確認

Homestead環境なら入っている筈だが、一応確認する。
phpinfoを見て、Xdebug拡張が含まれているかを見る。
FireShot Capture 030 - PHP 7.4.5 - phpinfo() - likekeshi.test.png

ホスト設定

Vagrant上で実行します。


# Xdebugの設定ファイルを確認
vagrant@homestead:~$ php --ini | grep xdebug
# デフォルトでモジュールが無効のため、何も表示されない

# モジュールを有効化
vagrant@homestead:~$ sudo phpenmod xdebug

# もう一度確認
vagrant@homestead:~$ php --ini | grep xdebug
/etc/php/7.4/cli/conf.d/20-xdebug.ini, # ← 設定ファイルが追加された

# 設定ファイルを編集
vagrant@homestead:~$ sudo vim /etc/php/7.4/cli/conf.d/20-xdebug.ini

以下の内容に書き換える。
xdebug.remote_portが9000だと動かなかったので、9001にする。
php-fpmのデフォルトポートが9000なので、それと競合するっぽい。

/etc/php/7.4/cli/conf.d/20-xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable = 1
xdebug.remote_host = 10.0.2.2
xdebug.remote_port = 9001
xdebug.remote_autostart = 1
xdebug.idekey = PHPSTORM
xdebug.remote_log = /tmp/xdebug.log
xdebug.show_error_trace = 1
xdebug.max_nesting_level = 512

再起動して設定を反映します。


vagrant@homestead:~$ sudo service php7.4-fpm restart

IDE設定

  1. 設定を開く
  2. 「言語&フレームワーク > PHP > デバッグ」でXdebugのデバッグ・ポートを9001に設定 2.png
  3. OKボタンを押して設定を閉じる
  4. 右上にあるPHPデバッグ接続のリッスンボタンを押す 7.png
  5. Vagrant上のサイトにアクセスする(例: http://homestead.test/ )
  6. PhpStormで「Incoming Connection From Xdebug」というダイアログが現れるので、public/index.phpを選択し、受諾ボタンを押す 3.png
  7. 「言語&フレームワーク > PHP > サーバー」を見ると設定が追加されている。しかし間違った設定がなされているため修正する。(/publicの絶対パスを削除してルートディレクトリの絶対パスを設定する) 4.png ↓修正 5.png

これで設定は完了です。
好きなところにブレークポイントを貼って、サイトにアクセスしてみましょう。
6.png

処理が停止して変数の一覧が見れるようになりました。
F9キーを押すと次のブレークポイントまで処理をすすめることができます。便利ですね。

補足

xdebug.remote_autostart = 0に設定すれば、デバッグの自動実行を止めることができます。
その場合、サイトにアクセスする際にXDEBUG_SESSION_START=PHPSTORMのパラメータを明示的に付与する必要があります。
Xdebug helperというChrome拡張を使うと、URLに勝手にパラメータを付けてくれるのでオススメです。

参考リンク

7
Help us understand the problem. What is going on with this article?
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
7
Help us understand the problem. What is going on with this article?