Xdebug + Homestead + Laravel + PHP 8.0 + VSCode

O Homestead é uma verdadeira ferramenta para quem desenvolve projetos com Laravel. Com facilidade você consegue iniciar uma máquina virtual com todos os recursos necessários para seu projeto rodar.

Neste artigo, veja como configurar o Xdebug + Homestead + Laravel + PHP 8.0 + VSCode

Quando atualizei o Homestead para a versão 12 comecei a ter alguns problemas já que algumas configurações do Xdebug 3 mudaram.

Simplesmente ao colocar um breakpoint e rodar uma requisição o breakpoint não funcionava.

Para resolver faça o seguinte:

Primeiro acesse o seu homestead por ssh e depois edite o arquivo de configuração do xdebug.

sudo nano /etc/php/8.0/fpm/conf.d/20-xdebug.ini

Adicione a seguinte configuração:

zend_extension=xdebug.so
xdebug.client_port=9003
xdebug.max_nesting_level=512
xdebug.client_host=192.168.10.1
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.start_upon_error=true
xdebug.idekey=VSCODE

Reinicie o processo do PHP:

sudo phpenmod xdebug
sudo service php8.0-fpm restart

No seu VSCode adicione o arquivo .vscode/launch.json

{
    // 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": 9003
      },
      {
        "name": "Launch currently open script",
        "type": "php",
        "request": "launch",
        "program": "${file}",
        "cwd": "${fileDirname}",
        "port": 9003
      },
      {
          "name": "Listen for XDebug on Homestead",
          "type": "php",
          "request": "launch",
          "pathMappings": {
              "/home/vagrant/code/SEUPROJETO": "${workspaceRoot}"
          },
          "port": 9003
      }
    ]
  }

Não se esqueça de alterar o pathMappings para as pastas do seu projeto.

Fonte: Fórum Laracasts