- For your local dev, create a
Dockerfile
that is based on your production image and simply installxdebug
into it. Exemple:
FROM php:5
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini
- Get you local IP address (
ip -o -4 addr list ${MY_NETWORK_INTERFACE:-eth0} | awk '{print $4}' | cut -d/ -f1
) - Start your container with the following environment variables:
XDEBUG_CONFIG="remote_host={{YOUR_IP_ADDRESS}}"
-
Simple
docker
run:docker run -e XDEBUG_CONFIG="remote_host={{YOUR_IP_ADDRESS}}" your-image
-
With
docker-compose
:# docker-compose.yml foo: build: path/to/Dockerfile environment: XDEBUG_CONFIG: "remote_host={{YOUR_IP_ADDRESS}}" PHP_IDE_CONFIG: "serverName=my.local"
- In Intellij/PHPStorm go to:
Languages & Frameworks
>PHP
>Servers
> and set the following settings:
- Name: name of your server, should be equal to value in
PHP_IDE_CONFIG
variable
Then you're all set and can start listening for PHP Debug connections from your IDE.
Happy debugging!
for the CLI application use a similar way and set HOST to "localhost" (of course PHP_IDE_CONFIG: "serverName=localhost")
https://sandro-keil.de/blog/2015/10/05/docker-php-xdebug-cli-debugging/