5.6 KiB
- orphan
Docker on Windows: Xdebug for Atom
Docker for Windows requires a well known IP address in order to connect to the host operating system.
Table of Contents
- local
Prerequisites
General
Ensure you know how to customize php.ini
values for the Devilbox and have a rough understanding about common Xdebug options.
* php_ini
* configure_php_xdebug_options
Gather Host IP address
On Windows you will have to manually retrieve the IP address to which Xdebug should connect to via xdebug.remote_host
.
When you have done no custom configuration in your Virtual Switch manager, Docker for Windows will use the Default Switch
automatically.
Open command line
Enter
ipconfig
Look for the IP4 address in
Default Switch
(e.g.:192.168.0.12
)Important
192.168.0.12
is meant as an example and will eventually differ on your system. Ensure you substitute it with the correct IP address.
howto_open_terminal_on_win
Assumption
For the sake of this example, we will assume the following settings and file system paths:
Directory | Path |
---|---|
Devilbox git directory | /home/cytopia/repo/devilbox |
env_httpd_datadir |
./data/www |
Resulting local project path | /home/cytopia/repo/devilbox/data/www |
Selected PHP version | 5.6 |
DockerNAT IP address | 192.168.0.12 |
Virtual Switch IP address | 192.168.0.12 |
The Resulting local project path is the path where all projects are stored locally on your host operating system. No matter what this path is, the equivalent remote path (inside the Docker container) is always /shared/httpd
.
Important
Remember this, when it comes to path mapping in your IDE/editor configuration.
Configuration
Install php-debug for Atom
Ensure you have php-debug
installed for Atom.
Configure Atom
You will need to configure the path mapping in config.cson
(Atom configuration file) or via UI:
"php-debug": {ServerPort: 9000 PathMaps: [ "remotepath;localpath" "/shared/httpd;/home/cytopia/repo/devilbox/data/www" ] }
Important
Recall the path settings from the Assumption section and adjust if your configuration differs!
Important
On Windows you have to use
\\
as directory separators for the local path mapping. E.g.:C:\\Users\\projects
.
Configure php.ini
Note
The following example show how to configure PHP Xdebug for PHP 5.6:
Create an xdebug.ini
file (must end by .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
Copy/paste all of the following lines into the above created xdebug.ini
file:
; Defaults xdebug.default_enable=1 xdebug.remote_enable=1 xdebug.remote_port=9000 ; The Windows way xdebug.remote_connect_back=0 xdebug.remote_host=192.168.0.12 ; idekey value is specific to Atom xdebug.idekey=xdebug.atom ; Optional: Set to true to always auto-start xdebug xdebug.remote_autostart=false
Important
Ensure you have retrieved the correct DockerNAT
IP address as stated in the prerequisites section above!
Note
Host os and editor specific settings are highlighted in yellow and are worth googling to get a better understanding of the tools you use and to be more efficient at troubleshooting.
Restart the Devilbox
Restarting the Devilbox is important in order for it to read the new PHP settings. Note that the following example only starts up PHP, HTTPD and Bind.
# Navigate to the Devilbox git directory
host> cd path/to/devilbox
# Stop, remove stopped container and start
host> docker-compose stop
host> docker-compose rm
host> docker-compose up php httpd bind
start_the_devilbox_stop_and_restart
(Why do docker-compose rm
?)