Tomara que você nunca precise fazer isso, mas é possível usar XDebug em ambientes de produção.
É lento, exige alguns procedimentos, mas pode ser necessário.
PREPARAÇÃO DO AMBIENTE
-
Garantir que vc está "checkoutado" na mesma versão do cliente, sem nenhuma alteração. Como você vai estar debuggando "os arquivos do servidor", mas olhando "seus arquivos locais", eles devem estar idênticos, senão obviamente o XDebug não vai conseguir funcionar.
-
No servidor aonde está o ambiente que você quer debuggar, colocar um
boreno ar:curl -s https://internal.iongrade.com.br/tmp/boreClient.sh | bash -s 9003 -
Na sua máquina, conectar no
boreremoto e ver "qual porta pegou":curl -s https://internal.iongrade.com.br/tmp/boreClient.sh | bash -s <SERVIDOR> 9003 -
No
modules_core.ymldo cliente, alterar:accelero_php- build: php+ image alesinicio/php-fullstack:php8.3.7-fpm-alpine318-xdebug -
No
php/php-ini-overrides.inido cliente, incluir:xdebug.client_host=<SERVIDOR_DO_CLIENTE>xdebug.client_port=<PORTA_QUE_PEGOU_NO_BORE> -
Incluir no arquivo
.env:PHP_IDE_CONFIG=serverName=localhost -
Reiniciar o container PHP-FPM:
./scripts/comp.sh up -d accelero_php
OPERAÇÃO
A partir desse momento, o XDebug deve estar funcionando.
Será lento, será sofrido, mas vai funcionar.
ALTERNATIVAS
É possível habilitar o XDebug só para "alguns momentos" através de trigger. Isso pode ser MUITO útil se você não quer interferir muito na operação normal do sistema. Pra isso, alterar o php-ini-overrides.ini e incluir:
xdebug.start_with_request=trigger
Depois, reiniciar o container PHP-FPM.
Daí você tem duas opções:
- adicionar
?XDEBUG_TRIGGER=1em todas as URL (mas isso não terá efeito em requests POST); - adicionar um cookie no console JS com
document.cookie = "XDEBUG_TRIGGER=1";.
Se adicionar um cookie, não se esqueça de deletar o cookie no final com document.cookie = "XDEBUG_TRIGGER=; expires=Thu, 01 Jan 1970 00:00:00 UTC;";
FINALIZANDO O DEBUG
Ao final, não se esqueça de desfazer todas as alterações e reiniciar o container PHP:
./scripts/comp.sh up -d accelero_php
E não se esqueça de desligar o bore do servidor e o bore na sua máquina.
DEBUGGANDO CLI
O processo é exatamente o mesmo acima, basta fazer as seguintes adaptações:
- os containers que devem ter a imagem "trocada" são os listados no
modules_listeners.yml; - o
php-ini-overrides.inique deve ser alterado é o que fica no diretóriophp-cli.
Se você não sabe como fazer as adaptações, provavelmente não deveria fazer o processo.