環境
【ホストPC】
・Windows10
・VSCode(拡張機能としてPHP Debug v1.26.0)
・Ubuntu20.04 on Windows
【Ubuntu内】
・Docker 20.10.12
・nginx
・PHP 8.0.17
・xdebug 3.1.4
実現したいこと
・コンテナ内のxdebugをホストPCに接続させたい。
・最終的にホストPCのVSCodeでPHPをデバッグしたい。
発生している問題・エラーメッセージ
コンテナ起動時にxdebugが立ち上がるとこまでは確認できたのですが、ブラウザから「localhost:xxxx」でPHPにアクセスしてからxdebug.logを見ると
[10] [Step Debug] INFO: Client host discovered through HTTP header, connecting to 180.30.0.1:9003. [10] [Step Debug] WARN: Creating socket for '180.30.0.1:9003', poll success, but error: Operation now in progress (29). [10] [Step Debug] WARN: Could not connect to client host discovered through HTTP headers, connecting to configured address/port: host.docker.internal:9003. :-| [10] [Step Debug] WARN: Creating socket for 'host.docker.internal:9003', poll success, but error: Operation now in progress (29). [10] [Step Debug] ERR: Could not connect to debugging client. Tried: 180.30.0.1:9003 (from REMOTE_ADDR HTTP header), host.docker.internal:9003 (fallback through xdebug.client_host/xdebug.client_port) :-(
上記ログのように接続がうまくいってません。
確認済み事項
【ホストPC】
VSCode上で「デバッグの開始」を押しコマンドプロンプトからnetstat -an
コマンドで下記状態を確認。
プロトコル ローカル アドレス 外部アドレス 状態 TCP 0.0.0.0:9003 0.0.0.0:0 LISTENING
【Ubuntu内】
・docker exec -it [app] bash
でコンテナへログイン、php -v
コマンドで下記状態を確認。
PHP 8.0.17 (cli) (built: Mar 29 2022 02:31:00) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.17, Copyright (c) Zend Technologies with Xdebug v3.1.4, Copyright (c) 2002-2022, by Derick Rethans
・cat /etc/hosts | awk 'END{print $1}' | sed -r -e 's/[0-9]+$/1/g'
コマンドでホストPCのIPが180.30.0.1
を確認。
・ホストPCに対してpingが通っていることは確認したがnc -vz 180.30.0.1 9003
は「Connection refused」エラー。
・php -i | grep xdebug
で設定値が読み込まれていることを確認。
各種設定ファイル
Launch.json
1 "version": "0.2.0", 2 "configurations": [ 3 { 4 "name": "Listen for Xdebug", 5 "type": "php", 6 "request": "launch", 7 //下記を追加 8 "hostname": "0.0.0.0", 9 "port": 9003, 10 "pathMappings": { 11 "/var/www/html/hogehoge":"${workspaceRoot}/hogehoge", 12 }, 13 },
dockerconpose.yml
1 hogehoge_php-fpm: 2 restart: always 3 container_name: hogehoge_php-fpm 4 build: ./php-fpm 5 volumes: 6 - ./source:/var/www/html 7 - ./php-fpm/phpconf:/usr/local/etc/php 8 networks: 9 hogehoge_network: 10 ipv4_address: 180.30.0.3 11 extra_hosts: 12 - "host.docker.internal:host-gateway"
php.ini
1[xdebug] 2xdebug.mode=debug 3xdebug.client_host=host.docker.internal 4xdebug.client_port=9003 5xdebug.start_with_request=yes 6xdebug.log=/tmp/xdebug.log 7xdebug.discover_client_host = 1
補足情報(FW/ツールのバージョンなど)
不足情報あればなるべく追記いたします。
何卒よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。