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
}
]
}
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?