VSCode - XDebug подключен к клиенту, но точки останова не работают

Я работаю над приложением PHP и хочу отладить свой сайт. Я работаю над IDE VSCode в Windows 10. Я использую Docker для запуска своего веб-сайта в WSL2.

Я настроил XDebug в своем контейнере php-fpm: 7.3.

root@00376c075cd3:/var/www# php -version
PHP 7.3.18 (cli) (built: May 15 2020 13:33:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.18, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.9.8, Copyright (c) 2002-2020, by Derick Rethans

В VSCode я настроил свой файл launch.json (с расширением phpdebug из

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000,
            "pathMappings": {
                "/var/www": "${workspaceFolder}/src"
            }
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000,
            "pathMappings": {
                "/var/www": "${workspaceFolder}/src"
            }
        }
    ]
}

Я вижу в журнале XDebug, что он подключен.

[6] Log opened at 2020-11-24 16:48:10
[6] I: Connecting to configured address/port: localhost:9000.
[6] I: Connected to client. :-)
[6] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///var/www/index.php" language="PHP" xdebug:language_version="7.3.18" protocol_version="1.0" appid="6" idekey="VSCODE"><engine version="2.9.8"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2020 by Derick Rethans]]></copyright></init>

[6] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

[6] Log closed at 2020-11-24 16:48:10

Я помещаю точки останова в свой файл index.php: точки останова

Но мой запрос не останавливается в VSCode.

Не могли бы вы помочь мне завершить настройку XDebug?

Спасибо за помощь.

С уважением, Энтони


person arv    schedule 24.11.2020    source источник
comment
Connecting to configured address/port: localhost:9000. Это ожидаемо с такими настройками. На основании журнала Xdebug вы должны были подключиться к php-fpm, который работает внутри вашего docker / WSL2 (по умолчанию он также использует порт 9000). Вам необходимо использовать правильный IP-адрес вашей ОС хоста (чтобы Xdebug мог подключаться ОТ вашего docker / WSL2 К вашему VSCode, который работает в Windows). Предлагаю проверить несколько готовых руководств по настройке образа Xdebug / Docker в таких случаях. Вы также можете проверить здесь возможные подсказки: learnxdebug.com   -  person LazyOne    schedule 25.11.2020
comment
Большое тебе спасибо. Я пробовал использовать localhost и WSL2 IP, но еще не использовал IP моего хоста. Сейчас это работает очень хорошо. Большое спасибо @LazyOne и спасибо за вашу ссылку, очень полезно.   -  person arv    schedule 25.11.2020


Ответы (1)


Спасибо @LazyOne. Ставлю ваш комментарий как ответ. :-)

Подключение к настроенному адресу / порту: localhost: 9000. Это ожидаемо с такими настройками. Судя по журналу Xdebug, вы должны быть подключены к php-fpm, который работает внутри вашего docker / WSL2 (по умолчанию он также использует порт 9000). Вам необходимо использовать правильный IP-адрес вашей ОС хоста (чтобы Xdebug мог подключаться ОТ вашего докера / WSL2 к вашему VSCode, который работает в Windows). Предлагаю проверить несколько готовых руководств по настройке образа Xdebug / Docker в таких случаях. Вы также можете проверить здесь возможные подсказки: learnxdebug.com

person arv    schedule 25.11.2020