Docker for macが遅くなってきたため、Vagrant on Dockerに切り替えました。
その影響でPHPの開発時にdebugができなくなり困っていたので、環境を設定してみました。
設定の概要
以前docker for macで設定した内容でほぼ動作をしたためまずdocker for macでdebugが動作することを確認します。
vagrant上に構築したからといってphp.iniの設定を変えることはありませんでした。
接続先をvagrantのIPに変更するだけでできました。
phpstormの設定
「Preferences」→「Languages & Frameworks」→「PHP」→「Debug」→「DBGp Proxy」を設定
設定のHOSTはvagrantのIPやhost名を適宜設定
「Preferences」→「Languages & Frameworks」→「PHP」→「Servers」を設定
vagrant用のサーバーを設定
「Run」→「Edit Configurations」を設定
デバック実行
デバック実行
ブレークポイント指定
ブレークポイントを貼ったプログラムにアクセスすることで、remote debugが動作します
つまづいたところ
公式ドキュメントでも、「Start Listening for PHP Debug Connections」をクリックして起動。とあり、試していたのですがうまく行きませんでした。
URLにアクセスしてみると、サーバーの確認画面が表示されます。
設定しているServersと合致する条件がないから、表示される画面なのか設定がうまくいきませんでした。
ちなみにAcceptボタンを押すと、Serversに無名のServersが追加され、無名のサーバーの名前を変更するまで他のServersの内容すら変更できなくなります。
雑記
設定がうまく動くのに2日ぐらいかかっています。
動作が遅いので設定しないままで開発してきましたが、使いたい。という欲求が大きくなったので設定してみました。
時間がかかった理由は最初からvagrant on dockerという情報がレアケースで試していたため、正しい情報が少なかったのが原因だと思っています。やはり小さくできることから始める重要性とできない時の方針の変更の判断が遅いんだと感じましたね。
他にも試行錯誤しているため、他の設定がうまく影響して動作している可能性はありますが、無効状態に設定しても動作することを確認したのでこのやり方でdebugできると思います。
dockerのtcpを設定する方法も見て試しましたが、はずしても動作したため設定しませんでした。
vagrantの設定も載せた方がいいのかな。