Lando, VS Code and XDebug 3¶
Reference: GitHub Gist Correct settings for XDebug + VSCode + Lando (+3.0)
If you see an error/warning similar to Xdebug: [Step Debug] Could not connect to debugging client. Tried: 192.168.1.40:9003 (fallback through xdebug.client_host/xdebug.client_port) :-(
, this is good news. The debug configuration will probably work. :)
Lando & PHP & XDebug Versions¶
Lando v3.0.23
lando php -v
PHP 7.3.25 (cli) (built: Dec 11 2020 09:53:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.25, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.25, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
Shared Files (php.ini and launch.json)¶
php.ini
[PHP]
; Xdebug
xdebug.max_nesting_level = 256
xdebug.show_exception_trace = 0
xdebug.collect_params = 0
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_host = ${LANDO_HOST_IP}
xdebug.log = /app/.vscode/xdebug.log
; Remote settings
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_host = ${LANDO_HOST_IP}
; xdebug.remote_connect_back = 1
xdebug.remote_log = /app/.vscode/xdebug_remote.log
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug (9003)",
"type": "php",
"request": "launch",
"port": 9003,
"log": true,
"pathMappings": {
"/app/": "${workspaceRoot}/"
}
}
]
}
Lando Config for LAMP Recipe¶
.lando.yml
name: my-lando-lamp-app
recipe: lamp
config:
database: mysql:5.7.32
webroot: drupal/web
php: "7.3"
xdebug: debug
config:
php: .vscode/php.ini
Lando Config for Drupal 8 & 9 Recipe¶
Important! The regular custom configuration does not work. The .lando.yml
file must not be configured like this
name: lando-d8-app
recipe: drupal8
config:
database: mysql:5.7.32
webroot: drupal/web
php: "7.3"
xdebug: true
conf:
php: scripts/lando-customizations/php.ini
Instead of the customizations like above, edit the file and move the customization to services
node under appserver
in the configuration for XDebug 3 to work.
Working .lando.yml
file