I'm trying to setup a dockered AMP environment and can't get the remote debugger working. My setup is as follows:
I have a database container running mysql which is working like a charm. I built a Docker image 'phpmysqli' with the following Dockerfile
FROM php:apache
RUN docker-php-ext-install mysqli mbstring
# zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
RUN pecl install xdebug
RUN echo 'zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so' >> /usr/local/etc/php/php.ini
RUN touch /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_enable=1 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_autostart=0 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_connect_back=1 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_port=9000 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_log=/tmp/php5-xdebug.log >> /usr/local/etc/php/conf.d/xdebug.ini;
RUN echo 'date.timezone = Europe/Berlin' > /usr/local/etc/php/conf.d/date.ini
I call
docker run --rm -ti --name web -p 127.0.0.1:8080:80 -v /path/to/projects:/var/www/html --link db:db phpmysqli
After this phpinfo respectively php -i shows that xdebug 2.3.2 is up and running.
Next I setup a Server inside IntelliJ IDEA called 'Docker' with Host 127.0.0.1
, Port 8080
and Debugger Xdebug. I setup the path mapping analogous to the Volume mapping in the docker run statement.
In the PHP->Debug settings I checked that I use port 9000
for incoming connections, that I will accept external connections and that I will not ignore connections from unregistered servers.
After this I created a new PHP Remote Debug Configuration called Docker, too. Server is Docker, session id is XDEBUG_IDEA
.
I can call PHP files on the Container, I can connect to the db via the link... but for some reason nothing whatsoever happens when I try to start a debug session. I tried using a cookie (and yes, I set XDEBUG_IDEA
as session id in xdebug helper). I tried sending XDEBUG_SESSION_START=XDEBUG_IDEA
as GET
...
Can you smart people out there tell me what I missed?
For me on a PHP, NGINX Docker environment using sublime, I got it to work with these settings:
The one that took me forever to figure out was to set the remote_host to host.docker.internal.
You can try with this configuration. php-apache build provide two method to compile and enable module php. It's nicer to use
docker-php-ext-enable xdebug
to set correct file configuration.close:
xdebug.remote_connect_back=0
add:xdebug.remote_host=192.168.0.102[your docker host/machine IP]