3.2.4. Configure Xdebug: Docker for Mac¶
Docker for MacOS requires a well known IP address in order to connect to the host operating system. This can be achieved with two different approaches described below.
Table of Contents
3.2.4.1. Prerequisites¶
Ensure you know how to customize php.ini
values for the Devilbox and Xdebug is enabled.
See also
3.2.4.2. Configure php.ini: CNAME alias¶
Option 1: This option is the easiest to setup, but was also very fragile on many Docker versions.
Docker for Mac received many default CNAMEs throughout its versions. The most recent and active
one is host.docker.internal
. Use this CNAME as the remote address for Xdebug to connect to your
IDE/editor on your host os.
See also
- CNAME for Docker for Mac
- In case
host.docker.internal
is not resolvable, read on here for alternative CNAME’s on Docker for Mac
Important
Before you try this approach, verify that the PHP Docker container is actually able to resolve
host.docker.internal
:
host> cd path/to/devilbox
host> ./shell.sh
php> ping host.docker.internal
In case it is not resolvable, stick to the host alias address approach.
The following example show how to configure PHP Xdebug for PHP 5.6:
1. Create xdebug.ini
# Navigate to the Devilbox git directory host> cd path/to/devilbox # Navigate to PHP 5.6 ini configuration directory host> cd cfg/php-ini-5.6/ # Create and open debug.ini file host> vi xdebug.ini
2. Paste the following content into xdebug.ini
; Defaults xdebug.default_enable=1 xdebug.remote_enable=1 xdebug.remote_port=9000 ; The MacOS way (CNAME) xdebug.remote_connect_back=0 xdebug.remote_host=host.docker.internal ; idekey value is specific to each editor ; Verify IDE/editor documentation xdebug.idekey=PHPSTORM ; Optional: Set to true to auto-start xdebug xdebug.remote_autostart=false
3. Configure your IDE/editor
See also
Important
Depending on your IDE/editor, you might have to adjust
xdebug.idekey
in the above configuredxdebug.ini
.
4. Restart the Devilbox
Restarting the Devilbox is important in order for it to read the new PHP settings.
3.2.4.3. Configure php.ini: Host alias¶
Option 2: This is the most general option that should work with any Docker version on MacOS, it does however require a few changes in your system.
Important
Ensure you have created an Host address alias on MacOS and
10.254.254.254
is aliased to your localhost.
The following example show how to configure PHP Xdebug for PHP 5.6:
1. Create xdebug.ini
# Navigate to the Devilbox git directory host> cd path/to/devilbox # Navigate to PHP 5.6 ini configuration directory host> cd cfg/php-ini-5.6/ # Create and open debug.ini file host> vi xdebug.ini
2. Paste the following content into xdebug.ini
; Defaults xdebug.default_enable=1 xdebug.remote_enable=1 xdebug.remote_port=9000 ; The MacOS way (host alias) xdebug.remote_connect_back=0 xdebug.remote_host=10.254.254.254 ; idekey value is specific to each editor ; Verify with your IDE/editor documentation xdebug.idekey=PHPSTORM ; Optional: Set to true to auto-start xdebug xdebug.remote_autostart=false
3. Configure your IDE/editor
See also
Important
Depending on your IDE/editor, you might have to adjust
xdebug.idekey
in the above configuredxdebug.ini
.
4. Restart the Devilbox
Restarting the Devilbox is important in order for it to read the new PHP settings.