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
Two things come to my mind right now:
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?
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With