Skip to content

Instantly share code, notes, and snippets.

@jzahedieh
Forked from chadrien/README.md
Last active April 18, 2016 12:09
Show Gist options
  • Save jzahedieh/43be0c4c3bd00d0585cbee72e6a84950 to your computer and use it in GitHub Desktop.
Save jzahedieh/43be0c4c3bd00d0585cbee72e6a84950 to your computer and use it in GitHub Desktop.
Debug PHP in Docker with PHPStorm and Xdebug

Debug your PHP in Docker with Intellij/PHPStorm and Xdebug

  1. For your local dev, create a Dockerfile that is based on your production image and simply install xdebug 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
  1. Get you local IP address (ifconfig or such)
  2. Start your container with the following environment variable: 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}}
  1. In Intellij/PHPStorm go to: Languages & Frameworks > PHP > Debug > DBGp Proxy and set the following settings:
  • Host: your IP address
  • Port: 9000

Then you're all set and can start listening for PHP Debug connections from your IDE. On the first run it will ask you to map your local directoryies to the docker directories, but after that nothing will be required anymore!

Happy debugging!


My working config was

xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 12345
xdebug.remote_host=172.18.0.1
xdebug.remote_autostart=off
xdebug.scream = 0
xdebug.show_local_vars = 1
xdebug.idekey = PHPSTORM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment