40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# Debugging
|
|
|
|
The farmOS development Docker image comes pre-installed with
|
|
[XDebug](https://xdebug.org) 3, which allows debugger connections on port 9003.
|
|
|
|
XDebug can be configured to discover the client host automatically with the
|
|
following `extra_hosts` and `environment` configuration in `docker-compose.yml`:
|
|
|
|
extra_hosts:
|
|
- host.docker.internal:host-gateway
|
|
environment:
|
|
XDEBUG_MODE: debug
|
|
XDEBUG_CONFIG: client_host=host.docker.internal
|
|
|
|
## PHPStorm
|
|
|
|
If you are using the PHPStorm IDE, some additional environment variables are
|
|
necessary:
|
|
|
|
XDEBUG_SESSION: PHPSTORM
|
|
PHP_IDE_CONFIG: serverName=localhost
|
|
|
|
For example:
|
|
|
|
extra_hosts:
|
|
- host.docker.internal:host-gateway
|
|
environment:
|
|
XDEBUG_MODE: debug
|
|
XDEBUG_CONFIG: client_host=host.docker.internal
|
|
XDEBUG_SESSION: PHPSTORM
|
|
PHP_IDE_CONFIG: serverName=localhost
|
|
|
|
With this configuration in place, enable the "Start listening for PHP Debug
|
|
Connections" option. Add a breakpoint in your code, load the page in your
|
|
browser, and you should see a prompt appear in PHPStorm that will begin the
|
|
debugging session and pause execution at your breakpoint.
|
|
|
|
This also works with command-line scripts like `drush`. You may need to map the
|
|
path to Drush (`vendor/drush`) in the PHPStorm debugger config.
|