2015-12-10 3 views
1

Я пытаюсь отладить php-код с помощью PHPStorm. Я нахожусь на Mac с докером. Я настроил XDebug на грузчиком с помощью:PHPStorm, Docker и отладка

zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so" 
xdebug.remote_enable = 1 
xdebug.remote_connect_back=1 
xdebug.idekey = "PHPSTORM" 

Затем я открываю прослушивание на PhpStorm, установите куки в браузере, а затем загрузить страницу установки точки останова в соответствующей точке. Бывает, что PHPStorm обнаруживает входящее соединение и просит принять соединение. Я нажимаю на accept, отладка заполняется переменными и через 1 секунду соединение прекращается, и сеанс отладки заканчивается.

Что я делаю неправильно?

+0

Включили ли вы порт отладки x в контейнере? (с опцией -p) По умолчанию x debug использует порт 9000 – jiboulex

+0

, порт 9000 открывается PHPStorm на хосте, соединение отправляется с xdebug (в контейнере) на phpstorm (на машине). По этой причине я не думаю, что мне нужно открыть порт 9000. Разве вы так не думаете? –

+0

Я думаю, что он заслуживает попробовать, а не на 100% уверен, что это решение, но у меня нет другой идеи: \ – jiboulex

ответ

0

Мне не удалось получить xdebug.remote_connect_back=1, чтобы работать на меня.

Вместо этого вам необходимо указать IP-адрес хоста докера. Начиная с выпуска докеров 17.06 в июне 2017 года, вы можете ссылаться на запись DNS docker.for.mac.localhost изнутри контейнеров докеров.

Вы должны попробовать следующее:

  1. Снимите xdebug.remote_connect_back=1 линию. Значение по умолчанию равно 0.
  2. Добавить xdebug.remote_host=docker.for.mac.localhost

остальные ваши шаги звучат правильно.

Смежные вопросы