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 ответа
Две вещи приходят мне на ум прямо сейчас:
Правильно ли установлен xdebug.remote_host? Для ссылки HTTP вы предоставили
192.168.
адрес, для обратного пути это172.17.
адрес. Можете ли вы пинговать ваш хост по этому IP?В вашем 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