DEV Community

Cover image for XDebug, PHPStorm, Docker, macOS Ventura
Marcello Pato
Marcello Pato

Posted on

XDebug, PHPStorm, Docker, macOS Ventura

UFA! Consegui.
Rodei muito a internet e fui encontrando pedaços aqui e ali que me ajudaram a finalmente fazer o XDebug funcionar no Docker com o PhpStorm. Vamos lá?

  1. Edite seu Dockerfile para adicionar a instalação do XDebug:
# Add xdebug
RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS
RUN apk add --update linux-headers
RUN pecl install xdebug-3.1.5
RUN docker-php-ext-enable xdebug
RUN apk del -f .build-deps

# Copie o arquivo xdebug.ini para o diretório de configuração do PHP
COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
Enter fullscreen mode Exit fullscreen mode
  1. Crie um arquivo de configuração para o XDebug:
xdebug.mode=develop,coverage,debug,profile
xdebug.idekey=docker
xdebug.start_with_request=yes
xdebug.log=/dev/stdout
xdebug.log_level=0
xdebug.client_port=9003
xdebug.client_host=<IP-DA-SUA-MÁQUINA>
Enter fullscreen mode Exit fullscreen mode

Para pegar o IP da sua máquina, veja as configurações de conexão, do Wi-Fi, por exemplo, e pegue esse IP indicado. Não use 127.0.0.1, pois não é esse.

  1. Pare seus contêineres caso estejam rodando e no Terminal digite: docker-compose up -d --build para recriar instalando e configurando o XDebug. Assim que estiverem rodando, digite php -v e você deverá ver algo parecido com:
PHP 8.1.21 (cli) (built: Jul 10 2023 23:14:30) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.21, Copyright (c) Zend Technologies
    with Xdebug v3.1.5, Copyright (c) 2002-2022, by Derick Rethans
Enter fullscreen mode Exit fullscreen mode

Se você conseguiu ver isso, parabéns, o XDebug está instalado em seu contêiner.

Agora vamos configurar o PhpStorm:

Janela do PhpStorm

Command+, para abrir as configurações do PhpStorm e vá em PHP>Servers.

  1. Clique no botão + para criar, dê o nome que preferir, o host e a porta. No meu caso estou usando a 81, mas indique a que você estiver configurado em seu Dockerfile.
  2. Selecione o XDebug na opção Debugger.
  3. Clique em Apply.

Ainda nessa janela procure por Build, Execution, Deployment>Docker.

Janela do PhpStorm

  1. Clique no botão + para adicionar e dê o nome que preferir.
  2. Selecione Docker for Mac e selecione um das opções para se conectar. O restante deve aparecer automaticamente: a mensagem de conexão feita com sucesso e o PATH, como está nessa imagem anexa acima.
  3. Clique em Apply.
  4. Clique em OK.

Agora vamos debugar!

  1. Abra um arquivo PHP e clique na coluna onde estão os números das linhas:

Janela do PhpStorm
Isso vai adicionar um breakpoint (ponto de parada) e faça a requisição pelo navegador ou pelo Insomnia/Postman. Fique de olho do PhpStorm, ele vai abrir a janela de depuração abaixo e assim que a execução chegar a esse ponto, você vai pode fazer a depuração inspecionando essas informações:

Janela do PhpStorm

Pronto! Você está debugando com o XDebug no PhpStorm rodando no macOS Ventura.

Resumo da ópera:
A maior dificuldade foi encontrar tutoriais ou artigos sobre o assunto que tinham todo o conteúdo junto. Precisei garimpar em vários sites como por exemplo: Jack Miras e no StackOverflow, entre outros, mas os mais eficientes foram esses dois.

A segunda foi sacar que o WORKDIR no Dockerfile precisavam ser completos, compatíveis com o Laravel, por exemplo: /var/www/html.

O bom é que aprendi muito sobre Docker, seus comandos, estrutura, ambiente, etc.

É isso galera, espero ter ajudado!

Top comments (1)

Collapse
 
leslieeeee profile image
Leslie

"Para usuários de PHP, existe uma ferramenta chamada ServBay.dev que oferece uma maneira muito mais fácil, especialmente para iniciantes. Ela lida com todas as versões do PHP, MariaDB, PostgreSQL, além de Redis e Memcached. É possível executar várias instâncias do PHP simultaneamente e alternar entre elas facilmente, sem a necessidade de configurar qualquer ambiente. Essa ferramenta simplificou meu desenvolvimento em PHP e definitivamente vale a pena experimentar!