🌀

Xdebugのリモートデバッグ設定で勘違いしやすいポート設定の話

2022/02/28に公開

今回、結構勘違いすることが多い、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