Como atualizar o Xdebug 2 para Xdebug 3 em PHP 7.4 no Ubuntu 20.04LTS?
A configuração para ambos ficam no arquivo referente a versão do PHP instalado em sua máquina, por default: /etc/php/7.4/mods-available/xdebug.ini
Antes (XDebug 2 - geralmente utilizado com PHP 5.6)
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_log = /tmp/xdebug56.log
xdebug.remote_mode = req
xdebug.remote_port = 9056
xdebug.remote_host = localhost
xdebug.show_error_trace = 1
xdebug.remote_connect_back = 1
xdebug.max_nesting_level = 9999
Agora (XDebug 3 - geralmente utilizado com PHP 7 ou 8)
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_handler=dbgp
xdebug.log=/tmp/xdebug74.log
xdebug.client_port=9074
xdebug.client_host=localhost
xdebug.discover_client_host=true
xdebug.max_nesting_level=9999
Fonte: https://xdebug.org/docs/upgrade_guide
Observação: (1) eu particularmente tenho PHP 7.2, PHP 7.4 e PHP 8.1 instalados na mesma máquina, eu defini alguns parâmetros como a porta 9072 para PHP 7.2, 9074 para PHP 7.4 e, 9081 para PHP 8.1 nos seus respectivos arquivos, assim eu consigo ter maior visibilidade ao monitorar separadamente cada projeto. (2) para saber se está tudo certo, crie em um script index.php adicionando o comando phpinfo(); então procure pela sessão XDebug, confirme a versão, e na dúvida de quais parâmetros configurar (por exemplo) em /etc/php/5.6/fpm/conf.d/20-xdebug.ini observe a lista de parâmetros das colunas Directive, Local Value e Master Value.
Sugestões de configuração do xdebug.ini
XDebug 2 - PHP 5.6 /etc/php/5.6/mods-available/xdebug.ini
zend_extension=xdebug.so
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_log = /tmp/xdebug56.log
xdebug.remote_mode = req
xdebug.remote_port = 9056
xdebug.remote_host = localhost
xdebug.show_error_trace = 1
xdebug.remote_connect_back = 1
xdebug.max_nesting_level = 9999
XDebug 3 - PHP 7.0 /etc/php/7.0/mods-available/xdebug.ini
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_handler=dbgp
xdebug.log=/tmp/xdebug72.log
xdebug.client_port=9072
xdebug.client_host=localhost
xdebug.discover_client_host=true
xdebug.max_nesting_level=9999
XDebug 3 - PHP 7.4 /etc/php/7.4/mods-available/xdebug.ini
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_handler=dbgp
xdebug.log=/tmp/xdebug74.log
xdebug.client_port=9074
xdebug.client_host=localhost
xdebug.discover_client_host=true
xdebug.max_nesting_level=9999
XDebug 3 - PHP 8.1 /etc/php/8.1/mods-available/xdebug.ini
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_handler=dbgp
xdebug.log=/tmp/xdebug81.log
xdebug.client_port=9081
xdebug.client_host=localhost
xdebug.discover_client_host=true
xdebug.max_nesting_level=9999
Configurando o XDebug no VSCode
- clicar em Run & Debug (Ctrl+Shift+D) no sidebar (lado esquerdo) do VSCode
- clicar na Engrenagem de tooltip: Open 'launch.json' (./vscode/launch.json)
- substituir as portas pelos respectivos números acima
- se estiver utilizando hosts virtuais (ex: meu-projeto.local) substituir localhost pelo dns do seu host virtual
- salve e dê play (F5)
Comentários