Como depurar código PHP no Visual Studio Code nos serviços do XAMPP?

Como depurar código PHP no Visual Studio Code nos serviços do XAMPP?

Primeiro, liguei o XAMPP e iniciei os seguintes serviços:

Os serviços que iniciei no XAMPP - captura de tela

A propósito, a versão do PHP é 7.3.3. Então verifiquei phpinfo()no navegador. Aqui está uma captura de tela:

phpinfo() - captura de tela

E eu fuixdebug.orgpara baixar esta versão do Xdebug:

A versão do Xdebug que baixei - captura de tela

Quando copiei esse arquivo para C:\xampp\php\ext, descobri que havia um arquivo chamado php_xdebug.dll. Seja como for, ainda chamei o arquivo Xdebug no caminho sem seu nome alterado ( php_xdebug-2.7.2-7.3-vc15-x86_64.dll).

Em seguida, copiei um trecho de código php.inide um artigo na Internet:

zend_extension = "C:\xampp\php\ext\php_xdebug-2.7.2-7.3-vc15-x86_64.dll"
[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000

Mas não consegui descobrir por que a porta era 9000 e a porta não funcionava de jeito nenhum. Entrei localhost:9000na barra de endereço do Chrome e a página de resultados mostra que o localhost rejeitou minha solicitação de conexão.

No entanto, eu ainda continuei. Instalei a extensão "PHP Debug" no VS Code. A extensão launch.jsoné mostrada abaixo:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

Finalmente, criei um novo arquivo PHP e depurei-o. Quando abri o arquivo no navegador, o programa de depuração não funcionou. Então, você poderia me dizer onde está o problema e me mostrar as etapas exatas de depuração?


atualização: Finalmente descobri qual é o problema, o número da porta 9000 está ocupado! Então digitei 'netstat -ano' no cmd e encontrei a porta 9000 e o valor PID correspondente.insira a descrição da imagem aquiEm seguida, digite 'taskkill /PID 4380 /F' para encerrar o processo que ocupa a porta. Finalmente, reinicie os serviços PHP. Assim, este problema foi resolvido. Mas lembre-se, certifique-se de instalar a versão correta do xdebug, que você pode visualizar no phpinfo() do XAMPP. Obrigado aos amigos na área de comentários pela ajuda.

Responder1

Você não precisa abrir a porta 9000, basta executar o debug como:

insira a descrição da imagem aqui

então

insira a descrição da imagem aqui

escolha PHP

insira a descrição da imagem aqui

iniciar e jogar ícone verde

insira a descrição da imagem aqui

adicione ponto de interrupção em seus métodos ou controladores

insira a descrição da imagem aqui

gerenciar seus pontos de interrupção

insira a descrição da imagem aqui

informação relacionada