🌀
Xdebugのリモートデバッグ設定で勘違いしやすいポート設定の話
今回、結構勘違いすることが多い、Xdebugのリモートデバッグの際のポート設定に関して書いておこうと思います。
Xdebugを利用してDocker等からリモートデバッグをしようとする際、必ず設定が必要になりますね。
この際に、2つの項目が出てくると思います。
Xdebug 2.xの場合
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
Xdebug 3.xの場合
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
3.xでremote_という名前がclient_という名前に変わったのも、この勘違いのしやすさから変わったのだと思います。
macやwindowsからdockerに対して接続していると勘違いしていないか
結構私はこの勘違いをそれなりに長くしてしまっていた民であるのですが、、、以下のようなイメージです。
Webサーバー側が9003ポートを開放していて、アプリケーションが9003ポートに接続してコネクションをはるのかなぁといったイメージでした。
実際は
しかしながら、実際の動作はこうです。
PHPStorm等のアプリケーションが9003などのポートをリッスンしており、このリッスンしているポートに対してxdebugがデバッグするための通信を投げるのです。
3.xでremoteがclientという名前が変わったのが何となく分かるでしょうか。
動かす元のホスト、ポートということでclientという名前に変更されたのでしょう。
Discussion