Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page will describe how to configure xdebug for PHPStorm  -

Table of Contents

Configure php environment in docker

  • Add XDEBUG_HOST  and XDEBUG_PORT  to .env file in your docker folder

Where XDEBUG_HOST is your host machine IP address, that is accessible from the PHP container (check ifconfig/ipconfig).

Explanation: PHPStorm should listen when running on that port and ip for debug connections. So you configure here xdebug where to connect to.

Warning

If working not at the usual place (offline / Pausa Cafe etc)

...

the here configured hostname / ip address in XDEBUG_HOST might be different. LAN IP vs WLAN IP for example.



  • Add  XDEBUG_HOST  and XDEBUG_PORT  to your docker-compose file

Warning

The configured host and port must be reachable from with in the container, see check below.


  • Host where PHPstorm runs must be reachable by the docker container, to test go into the container and
    Image Added
    1. call t5 service:ping ${XDEBUG_HOST}:${XDEBUG_PORT}
    2. if using a hostname, DNS entries must be returned (in my case my fritz.box returns three entries: a dead one, the LAN interface, the WLAN interface)
    3. For IPV6 see below separate section
    4. The dead IP does not provide the port 9000
    5. On LAN / WLAN interfaces port 9000 is listening and is reachable by PHP

PHP xdebug configuration

This is background knowledge - should all be fine since rolled out with docker container.

In the PHP container xdebug is configured in: /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

By default it is configured the following way:

Code Block
zend_extension=xdebug
xdebug.mode=debug
xdebug.discover_client_host=1
xdebug.log_level=0
xdebug.idekey=PHPSTORM
xdebug.client_host=${XDEBUG_HOST}
xdebug.client_port=${XDEBUG_PORT}

PHPStorm configuration

Port configuration

Ensure that PHPStorm is listening to the correct port (default is 9003 as mentioned above, in my case in the screenshot I use 9000):

Image Added

File Mapping

  - Configure file mapping between your local copy and the files inside the container

...

Set the root folder of your copy of translate5 on the left (see screenshot) to be mapped to /var/www/translate5  on the right (see screenshot)

Enable debug connections

...

Ensure that PHPStorm is listening to debug connections, check the status line at the bottom: 

Image Added


Browser

Install helper

  • Install XDebug helper extension for your browser

  -

Configure it:

Image Added

Image Added

Note

The IDE Key should / must be the same as in the xdebug configuration in php.ini files, so by default PHPSTORM in our docker containers.


Enable debugging 


  - Enjoy (wink)