Debugging on Laravel Homestead using VS Code

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 thought on “Debugging on Laravel Homestead using VS Code”

  1. 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?

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top