Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

xdebug in phpstorm and docker

I managed to get xdebug in combination with docker and phpstorm. For http calls...IE

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

But when I try to run my phpunit tests, It does not connect with phpstorm

I did the correct directory mapping right in phpstorm, and also ran the following on my docker-instance export XDEBUG_CONFIG="idekey=PHPSTORM"

I also tried on my docker: export PHP_IDE_CONFIG='serverName=web.docker'and named the server config on phpstorm web.docker . still working over http but not CLI

So can I get phpstorm and xdebug working together for command line too?

here is my file: /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

When I turn on logging, and play with the xdebug_remote_host IP adress I get

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

Solution (edit) By turning on the xdebug logging, I saw it was succesfully connecting to 192.168.99.1 so this solved the issue

xdebug.remote_host=192.168.99.1
like image 296
Confidence Avatar asked Oct 09 '15 12:10

Confidence


2 Answers

Two things come to my mind right now:

  1. Is xdebug.remote_host set correctly? For the HTTP Link you provided a 192.168. address, for the way back it's a 172.17. address. Can you ping your host on that IP?

  2. In your ini file it reads:

    dxdebug.remote_autostart=1
    

    Is this just a typo here, or is that actually in your config file? Because it should read xdebug without the "d" in front of it. It should be:

    xdebug.remote_autostart=1
    

    You should only add the d when you add the option when executing the script like this:

    php -dxdebug.remote_autostart=1 script.php
    

If that doesn't help yet, please enable the remote log by adding something like this to the config:

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

maybe that'll help to find the problem.

like image 186
Pampy Avatar answered Sep 23 '22 23:09

Pampy


What worked for me is ssh tunnel with this configuration xdebug.remote_connect_back=0 xdebug.remote_host=127.0.0.1

See: Xdebug with SSH tunnel on Docker for Mac

like image 33
Eugene Tulika Avatar answered Sep 22 '22 23:09

Eugene Tulika