# 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 \ && echo "xdebug.max_nesting_level=500" >> /usr/local/etc/php/conf.d/xdebug.ini ``` 2. Get you local IP address 3. 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`: ```yaml # docker-compose.yml foo: build: path/to/Dockerfile environment: XDEBUG_CONFIG: remote_host={{YOUR_IP_ADDRESS}} ``` 4. 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 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!