У меня была эта проблема в Docker-контейнере в Windows.Все вроде правильно настроено, phpStorm правильно прослушивает локальный порт 9000 на 127.0.0.1.phpinfo () отображает запущенный xdebug.so.Когда я запускаю скрипт из веб-браузера, отладчик не может остановиться на точке прерывания .Файл xdebug.log содержал следующее:
Log opened at 2019-07-02 08:17:10
I: Connecting to configured address/port: docker.for.mac.localhost:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///app/www/index.php" language="PHP" xdebug:language_version="7.2.15" protocol_version="1.0" appid="38768" idekey="PHPSTORM"><engine version="2.6.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2018 by Derick Rethans]]></copyright></init>
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
Log closed at 2019-07-02 08:17:10
Мне пришлось выполнить ssh в контейнер, чтобы выяснить, что он не подключается из контейнера к Windows, в которой размещен контейнер.Проблема заключалась в том, что моя конфигурация docker compose содержала docker.for.mac.localhost
, который собирался установить в настройку xdebug.remote_host
.Даже если xdebug.log утверждал, что xdebug подключен к клиенту, фактически он не подключился.
Решение было xdebug.remote_host = host.docker.internal
. Это имя хоста используется в контейнере Docker для созданиялокальное подключение к операционной системе, в которой размещен контейнер.
Более подробная информация здесь: https://docs.docker.com/docker-for-mac/networking/