xdebugの仕組み
php本体(vagtrantの中にある)とphp storm(PC本体)をリモートで接続してデバックを制御しています。
今回はvagrantにあるphp,xdebugを使い、local(自分のPC)をデバッグしたいので、
vagrantのhost(vagrantfileに記載されているもの) => localのPC
をデバッグするという機構になります
より詳しい説明はこちらを参考に
https://qiita.com/castaneai/items/d5fdf577a348012ed8af
xdebugのインストール
$ sudo yum install --enablerepo=remi-php72 php-xdebug -y
php.iniの設定
Xdebugモジュールの場所を確認
$ sudo find / -name "xdebug.so"
上記を参考にphp.iniの編集
$ sudo vi /etc/php.ini
[xdebug]
zend_extension=/path/to/Xdebugモジュール(上で確認したやつ)
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=10.0.2.2 ;*デバッグ接続するPCのIPアドレス。
xdebug.remote_port=9001 #9000番だとうまくいかないことがあるらしいので
xdebug.idekey="PHPSTORM"
各値の詳しい説明はこちらを参考に
https://qiita.com/castaneai/items/d5fdf577a348012ed8af
*デバッグ接続するPCのIPアドレス。
つまり、vagrantから見た、macのhostnameのことですが、「10.0.2.2」と指定するのがお約束らしいです。
これは、「vagrantから見た」なのでdockerなどの他のものを使っているのであれば、この値にはならない(と思います)
php-fpmの再起動
$ sudo systemctl restart php-fpm
PHP STORM側の設定
ここからは自分のPCにあるPHP STORMでの設定。
画面の上部の
PHPStorm -> Preferences
を選び、
まずは、以下のように
Languages & Frameworks > DebugからDebug portの設定をします
ここの9001番はphp.iniに記述したものと同じにします。

次に、
上記「Debug」のすぐ下の「Servers」にいき、
vagrantfileで設定しているhostを設定する。

次にlocalのPCとvagrantのディレクトリをマウントしているのであればその設定を記述。
これもvagrantfileの通り。

参考までにvagrantfileは以下のものです。
Vagrant.configure("2") do |config|
config.vm.define "app" do |node|
node.vm.box = "bento/amazonlinux-2"
node.vm.box_version = "1.0.0"
node.vm.hostname = "app"
node.vm.synced_folder "app", "/var/www" #ここと
node.vm.network :private_network, ip: "192.168.33.10" #ここ
node.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
end
end
次に、今作成したサーバー情報を元に、debugのための設定をしていきます。
メニューのRun > Edit Configurations
左上の「+」から、「PHP Remote Debug」を選択し、設定を追加します
以下のような画面になると思いますので、

Name:好きなもの
Servers:先ほど作成したものをプルダウンから選択
(選択するときは、Filter debug connection by IDE key にチェックを入れてからでないと、選択できません。)
ide key:PHPSTORM
というように作成してください
以上で設定が終わりました。
これでxdebugが使えるようになるはずです。