Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Dúvida de configuração

Pessoal talvez não tenha muito ver mas queria uma dica de vocês porque já estou maluco com esse negocio que não está funcionando de jeito nenhum! para configurar o xdebug para funcionar no phpstorm, em ambiente docker para testar api pelo postman. Vocês teriam algum exemplo ou procedimendo para me indicar? Pelo amor de Deus ! rsrs

7 respostas

Vê se isso te ajuda, Alexandre: https://www.youtube.com/watch?v=kbq3FJOYmQ0

Olá Vinicius, obrigado pelo vídeo foi bem esclarecedor. Eu fiz tudo de lá, até dividindo em outro arquivo, separando do php.ini. Só que não entendi o que lá não está dando certo. Só quando adiciono xdebug.start_with_request=yes que parece funcionar até certo ponto. Ele vai sempre para o primeiro arquivo index.php não para em nenhum breakpoint e depois de alguns segundos, dá erro 502. O servidor no container é ngnix. Já tentei fazer um milhão de coisas. No windows, estou conseguindo usar o debug, mas no Linux com Docker, não vai. Inclusive aumentei o fastcgi_read_timeout para 1800 no ngnix.conf, pareceu não significar nada.

Opa, Alexandre. Sobre o xdebug.start_with_request=yes é porque você não deve estar passando o TRIGGER nas requisições. Sendo assim a sessão de debug nunca é iniciada. Com essa configuração definida como yes o TRIGGER não é necessário e a sessão é sempre iniciada. Sobre o arquivo parar na index.php e não em breakpoints, eu honestamente nunca vi. Nenhum erro é exibido? Consegue gravar um videozinho da sua tela e me mandar pra eu ver como isso acontece?

Ao receber essa conexão pela primeira vez, o PHPStorm abriu uma janela para você realizar o mapeamento da pasta local com a pasta no container? Isso é uma configuração necessária também que normalmente acontece de forma automática.

Vinicius, tive alguns imprevistos, desculpa não responder antes. Desde já muito obrigado pelo apoio!

Sim eu consigo fazer o vídeo, eu não deixei muito claro o porque do index. Eu estou usando Laravel, daí quando começo ir linha a linha nos steps do phpstorm, não dá tempo de chegar onde coloco o breakpoint no Controller, a sessão morre logo depois de alguns segundos.

Esse trigger que você diz, precisa ser configurado no docker-compose.yml?

Me refiro a esse trigger, Alexandre: https://youtu.be/kbq3FJOYmQ0?t=522

Sobre a sessão morrer, aparece alguma mensagem no PHPStorm?

Você consegue gravar um vídeo desse erro acontecendo pra eu entender melhor?

Vinicius eu criei outro projeto com o symfony, porque eu poderia estar viajando naquele, então segui o passo a passo certinho e até funcionou colocando o trigger mesmo lá na URL, como você mostrou. Por isso que nem te mandei o video. Mas agora estou quebrando a cabeça porque ele depois de um tempo morre, dando 502 Bad Gateway. Acredito que isso seja algum timeout que eu possa aumentar no Nginx mas eu já alterei umas par deles e não rolou. Então, minha vida já está quase salva kkkkkkk.

Quando faço a chamada usando um browser, o xdebug foi interceptado: XDEBUG interceptado pelo phpStorm

Mas ele morre. Onde você acha que eu poderia mudar isso aí para ele não morrer?!NGINX 502 BAD GATEWAY

Nas configurações do Nginx eu já inseri isso no contexto de http:

send_timeout 12000;
keepalive_timeout 120;

Já tentei aqui no contexto de server:

location ~ ^/index\.php(/|$) {
            try_files $uri =404;
            fastcgi_read_timeout 1200s;
            fastcgi_send_timeout 1200s;
            fastcgi_connect_timeout 1200s;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            fastcgi_param DOCUMENT_ROOT $realpath_root;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
  }

Ele continua morrendo ...

Só adicionei essa configuração para aquele arquivo que você indica no video para acrescentar ao php.ini:

[xdebug]
xdebug.mode=debug
xdebug.discover_client_host=0
xdebug.client_host=host.docker.internal
xdebug.client_port=9003

Adicionei aquele cara no docker-compose.yml:

extra_hosts:
      - "host.docker.internal:host-gateway"

Lá no phpStorm em Settings > PHP > Servers, ele adicionou a configuração pela porta 80, tanto que o phpStorm começou o debbuger.

Agora eu acho que você faz o golaço de letra !

solução!

Na verdade eu tinha esquecido de configurar request_terminate_timeout no php. Ajustei ele para 999s e já era, está funcionando a mil.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software