DEV Community

Cover image for Xdebug 3 no PHPStorm com PHP 7.4
Thiago Luna
Thiago Luna

Posted on

Xdebug 3 no PHPStorm com PHP 7.4

Olá Devs! Muitos bugs? Que bom que temos o Xdebug para nos ajudar!

Existem vários tutoriais mostrando como configurar o Xdebug em diferentes versões do PHP no PHPStorm.

Nesse artigo trago um Direto ao Ponto para configurar o Xdebug 3 no PHPStorm com PHP 7.4 e Docker - Linux.

Primeiro, vamos instalar o xdebug no container.
Em seguida, configurar o PHPStorm.

Vamos lá!

1- Criar o arquivo docker-php-ext-xdebug.ini.
Pode ser na raiz do projeto ou em alguma outra pasta de sua preferência.
Entrar no container e rodar find / -name xdebug.so para saber o path certo e colocar no zend_extension conforme abaixo:
[xdebug]
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so
xdebug.mode=debug
xdebug.client_port=9003
xdebug.start_with_request=yes
xdebug.discover_client_host=0
xdebug.client_host=host.docker.internal

OBS: Se tiver algum problema com o Xdebug não conseguir se conectar ao host.docker.internal, verificar qual é o ip da máquina local rodando o comando ifconfig (sudo apt install net-tools) e colocar esse ip no xdebug.client_host

2- Adicionar no Dockerfile:
# Xdebug
RUN pecl install xdebug && docker-php-ext-enable xdebug

# Conferir os paths corretos da pasta php dentro do container
ADD docker-php-ext-xdebug.ini /usr/local/etc/php/conf.d/
RUN echo "include_path=/usr/local/etc/php/conf.d/xdebug.ini" >> /usr/local/etc/php/php.ini

OBS: Entrar no container e rodar php --ini para saber os paths certos e colocar nessas linhas acima.

3- Adicionar no docker-compose.yaml a variável de ambiente dentro do serviço que vai rodar a aplicação:
extra_hosts:
- "host.docker.internal:host-gateway"
environment
- PHP_IDE_CONFIG=serverName=XdebugServer

Agora vamos seguir com as configurações no PHPStorm

4- Iniciar no PHPStorm a configuração clicando no combobox que fica do lado esquerdo do ícone Play.
Em seguida seleciona a opção Edit Configurations...
PHPStorm - Xdebug

Na tela seguinte, em Configuration > Server, clicar no ícone para adicionar um novo server.
PHPStorm - Xdebug

5- Preencher conforme imagem abaixo:
PHPStorm - Xdebug
A Port deverá ser a que é usada no browser para rodar a aplicação
No caso da aplicação ficar dentro do container na pasta /var/www, a mesma deverá ser usada no path mappings.
Em File/Directory > Project files > path do projeto, na coluna Absolute path on the server adicionar o caminho da pasta www de dentro do container conforme imagem acima.

6- Após essas configurações, voltar para a tela da Imagem 2
Clicar em Validate.
PHPStorm

O resultado esperado deve ser conforme imagem abaixo:
PHPStorm Xdebug

Com isso, o Xdebug deverá funcinar.

Clique aqui para ver um exemplo de container configurado como descrito neste post.
Use e abuse!

Agradeço ao meu parceiro de Pair Programming Juliano Fritz que me ajudou a montar essa configuração.

Há braços e até o próximo Direto ao Ponto!

Thiago Luna - Linkedin

Discussion (0)