VSCode⇄Dockerコンテナ内PHPでリモートデバッグが動かない

自身の端末で立ち上げているDockerコンテナ内のPHPのデバッグをしたくて、

ブレークポイントを設定して、PHP Debugの実行▶️を押しても、何も起きない

Ubuntu 18.04.4 LTS, Visual Studio Code 1.45.1, PHP Debug 1.13.0

色々な記事を参考にして、VSCodeのバージョンを疑ってみたり、デフォルトの9000番ポートではなく9001番にしてみたり、ssコマンドでPHP Debug実行時にちゃんと指定のポート番号でLISTENしているかみてみたり、やりましたが解決せず。。。

こういう時はログを見ないと始まらんっちゅーことで、xdebugのログが吐き出されるように

xdebug.remote_log=path_to_log/xdebug.log

をphp.iniに追記してbuildし直して、up -dするも、ログにも何にも吐き出されない。。。

「いやー、もうお手上げ」と思った時に、

同僚が「もしかしてOSのファイヤーウォール効いてます?」と

私Ubuntu18.04なので

$ sudo ufw status

Status: アクティブ! 嫌な予感・・・

$ sudo ufw allow 9000
$ sudo ufw reload
$ sudo ufw status

そして、再度デバッグ実行▶️

はい、ちゃんと動きましたよ!ブレークポイントで止まりました!

端末で動いているDockerコンテナのPHPとVSCode間の通信だと思っていたので、ファイヤーウォールは疑いもしませんでした。

論理的なネットワークについての認識が間違っていたのだろうと思います。

localhostとは何なのか論理ネットワーク的に構成はどのようになっているのか、正しい認識が持てるように取り組まないといけませんね。

Please share this page:

コメントを残す