Edit the Xdebug ini file in your Vagrant Homestead box:-
cd /etc/php/7.2/mods-available
sudo nano xdebug.ini
Make sure the contents look like this:-
zend_extension=xdebug.so
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.idekey = VSCODE
xdebug.remote_autostart = 1
xdebug.max_nesting_level = 512
The important settings are the idekey and remote_autostart.
Then restart FPM-PHP with the following command:-
sudo service php7.2-fpm restart
If you’re using PHP 7.3, just modify the command as required.
Your VS Code debug config file should look something like this:-
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {
"/home/vagrant/app": "${workspaceRoot}",
},
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
1 comment
Loc Nguyen
Hi Chris,
Thank you so much for this configuration. This helps me set up Xdebug to catch requests from the browser.
However this does not stop at any breakpoint If I run phpunit inside homestead. Any change you know why?