Como efetuar o debug remoto usando Xdebug do PHP usando o Google Chrome

image_pdfimage_print
  1. Baixe e instale a extensão:
    1. https://chrome.google.com/webstore/detail/xdebug/nhodjblplijafdpjjfhhanfmchplpfgl/related?hl=en-GB&gl=GB
  2. Acesse o servidor que contém o código fonte PHP e irá executá-lo
  3. Instale o PHP Xdebug
    1. Em Debian, basta:
      1. apt-get install php7.0-xdebug
  4. Acesse o arquivo x-debug.ini de configuração no servidor
    1. Exemplo em Debian Stretch:
    2. vim /etc/php/7.0/cli/conf.d/20-xdebug.ini
  5. Adicione as seguintes linhas ao arquivo de configuração
    1. xdebug.remote_enable=1
    2. #Esta linha e a debaixo não precisam ser adicionado. São apenas comentários de instrução de uso.
    3. #Ip do cliente que irá conectar. No nosso exemplo, iremos apenas deixar ser efetuado conexões locais, por questão de segurança, e iremos utilizar uma conexão SSH ao servidor, para permitir uma máquina remota depurar ‘remotamente’. Avalie para o seu caso qual deve ser o valor o correto para permitir o debug remoto, no caso, sendo necessário colocar o ip da máquina que irá efetuar o debug remoto. Outro ponto importante é que o servidor e a máquina remota devem ter capacidade de um se conectar no outro, por motivos óbvios. No caso, será utilizado a porta 9000 e para debugs via browser, a porta do seu servidor web.
    4. xdebug.remote_host=127.0.0.1
    5. xdebug.remote_port=9000
    6. xdebug.remote_handler = dbgp
    7. xdebug.remote_mode = req
  6. Abra o no add-on baixado. Ele está acessível no browser na URL em chrome://apps/
    1. Basta clicar no ícone do XDebug
  7. Ao abrir o XDebug APP, basta clicar em Listen e em seguida:
  8. Rodar no:
    1. Browser
      1. <url>?XDEBUG_SESSION_START=1
    2. Console
      1. XDEBUG_CONFIG=”” php <script_php>
      2. Exemplo usando o PHPUnit
        1. XDEBUG_CONFIG=”” php vendor/PHPUnit-4.4/phpunit.phar –debug <script_php>
  9. E pronto! O debug utilizando o navegador deverá ter iniciado. Caso não verifique suas configuração (settings do app)

Caso o servidor PHP seja Unix-like com suporte a SSH, e a configuração de debug remoto tenha sido definido para rodar em 127.0.0.1 (apenas local), porém, a depuração vá ser feita remotamente em outro servidor, é necessário o passo extra seguinte:

  1. Na máquina onde vai ser feito o debug remoto, efetue a conexão ao servidor com o comando
    1. ssh -g -N -lroot -R9000:127.0.0.1:9000 <endereço_servidor_aqui>
  2. A configuração do XDebug APP deverá estar apontando para tudo local normalmente, visto que a conexão será feita via SSH, escondendo que a conexão remota.
  3. Apenas para conferência, as configurações do XDebug APP ficaram:
    1. Listening IP: 0.0.0.0
    2. Listening Port: 9000
    3. Number of lines: 50
    4. Keep Listening: checked
    5. Break at first line: checked
    6. Highlight syntax: checked
    7. Remember breakpoints: checked
  4. E pronto.
Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!