xdebug в phpstorm и докере

Мне удалось получить xdebug в сочетании с docker и phpstorm. Для http звонков... IE

http://192.168.99.100:8081/?XDEBUG_SESSION_START=PHPSTORM

Но когда я пытаюсь запустить свой phpunit тесты, это не связано с phpstorm

Я сделал правильное сопоставление каталогов прямо в phpstorm, а также запустил следующее на моем Docker-экземпляре export XDEBUG_CONFIG="idekey=PHPSTORM"

Я также попробовал на моем докере: export PHP_IDE_CONFIG='serverName=web.docker' и назвал конфигурацию сервера в phpstorm web.docker . все еще работает над http, но не CLI

Так можно ли заставить phpstorm и xdebug работать вместе для командной строки?

вот мой файл: /etc/php5/cli/conf.d/20-xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.idekey=PHPSTORM
xdebug.remote_connect_back=1
xdebug.remote_host=172.17.42.1
dxdebug.remote_autostart=1

Когда я включаю ведение журнала и играю с IP-адресом xdebug_remote_host, я получаю

W: Remote address not found, connecting to configured address/port: localhost:9000. :-|
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:20:39

Log opened at 2015-10-13 12:22:58
I: Checking remote connect back address.
W: Remote address not found, connecting to configured address/port: 172.17.42.1:9000. :-|
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:22:58

Log opened at 2015-10-13 12:23:58
I: Checking remote connect back address.
W: Remote address not found, connecting to configured address/port: 192.168.99.100:9000. :-|
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:23:58

Решение (правка) Включив ведение журнала xdebug, я увидел, что оно успешно подключается к 192.168.99.1 так что это решило проблему

xdebug.remote_host=192.168.99.1

3 ответа

Решение

Две вещи приходят мне на ум прямо сейчас:

  1. Правильно ли установлен xdebug.remote_host? Для ссылки HTTP вы предоставили 192.168. адрес, для обратного пути это 172.17. адрес. Можете ли вы пинговать ваш хост по этому IP?

  2. В вашем INI-файле это выглядит так:

    dxdebug.remote_autostart=1
    

    Это просто опечатка здесь, или это на самом деле в вашем конфигурационном файле? Потому что он должен читать xdebug без "d" перед ним. Так должно быть:

    xdebug.remote_autostart=1
    

    Вы должны добавлять d только тогда, когда добавляете опцию при выполнении скрипта следующим образом:

    php -dxdebug.remote_autostart=1 script.php
    

Если это еще не помогло, пожалуйста, включите удаленный журнал, добавив что-то вроде этого в конфигурацию:

xdebug.remote_log = /var/log/xdebug_remote.log

может быть, это поможет найти проблему.

Для меня работал туннель ssh с этой конфигурацией xdebug.remote_connect_back=0 xdebug.remote_host=127.0.0.1

Смотрите: Xdebug с туннелем SSH в Docker для Mac

Начиная с Docker-17.06, вы можете получить доступ к службам, размещенным на Mac внутри Container, через статическое имя хоста: docker.for.mac.localhost

полный ответ здесь: /questions/34704034/xdebug-ne-mozhet-podklyuchitsya-k-hostu-docker/34704051#34704051

Другие вопросы по тегам