12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DockerでXDebug使ってPHPデバッグする際はremote_connect_backが使えない

Posted at

XDebugを使ってPHPのデバッグをする際、設定方法には2つある。

  1. remote_hostをホストPCのIPアドレスに設定する
  2. remote_connect_backをtrueにする

remote_connect_backを使えばホストPCのIPを入力せずとも、ホストPCとの連携が簡単に出来る。

If enabled, the xdebug.remote_host setting is ignored and Xdebug will try to connect to the client that made the HTTP request.
https://xdebug.org/docs/all_settings#remote_connect_back

ところが、Docker上にインストールしたXDebugとの連携の場合は、こうはいかないらしく、remote_hostを設定しないと動かなかった。
理由は不明。
ともあれ、このことに気付くまでにえらく時間掛かってしまった。

必須項目は以下の通り。

  1. Docker上のXDebugにはremote_hostを設定する。
     →ホストPCのIPはipconfigなりifconfigなりで調べる。
  2. docker-composeする際に、9000番ポートをexposeしておく。
     →XDebugはデフォルトで9000番ポートを使うため。
  3. volumesを設定する。
  4. Netbeansの場合、実行環境を「ローカルWebサーバー」としておく。
     →リモートで動いているように見せかけて「localhost」で動いているため?

Windowsのファイアウォールまで疑って、わざわざ9000番を空けても動かなかったので何で?!と思っていたのですが、こんなところに解決策があったとは。
調べても調べても全然出てこなかったので備忘録として。

あまりこの辺の記述が見当たらない辺り、Dockerをローカル開発環境として使う使い方は変わってるんですかねー。。。
ともあれ、これでようやくHyper-V+DockerでのPHP開発が出来るようになりました。

12
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?