[megoldva] vs-code/phpstorm, docker, xdebug
Régebben használtam az xdebugot php-hoz, és gondoltam, hogy az Ubuntu alatt jól futó code alatt is megpróbálom beüzemelni, dockeren futó webalkalmazáshoz, de egy rémálom.
Mintha mindkét főhős (code és docker) a 0.0.0.0:9000-et akarná használni, és amelyiket később indítom el (a code és a docker közül), az panaszkodik, hogy "EADDRINUSE: 9000", vagyis hogy a port már foglalt.
Gyanús mondjuk, hogy a Google Chrome-hoz tartozó xdebug plugin nem tartalmazza a beállítási legördülőmenüjében a code-ot, csak egyebeket (pl. PhpStorm).
Szerk: PhpStorm-mal is ugyanez volt a helyzet, amelyik portot beállítottam a dockerben, arra mondta a PhpStorm (is), hogy ... port is busy.
php-fpm-et használok, de nem a 9000-es porton, hanem unix:/var/run/php/php7.2-fpm.sock socketen.
Megoldás:
Itt találtam releváns segítséget: https://dev.to/brpaz/docker-phpstorm-and-xdebug-the-definitive-guide-14… - és az ehhez kapcsolódó github példában: https://github.com/brpaz/symfony-docker-xdebug-demo
Fantasztikusan egyszerű ez a .env fájl sor:
XDEBUG_CONFIG="default_enable=1 remote_enable=1 remote_port=9001 remote_handler=dbgp remote_connect_back=1 remote_autostart=1 idekey=PHPSTORM"
Nagyságrendekkel egyszerűbb, mint a https://derickrethans.nl/xdebug-experience.html utolsó posztjában vázolt szkriptes cserebere.
Segített ez a kis példa is, hogy felfogjam, hogy is van itt ez az xdebug kliens ügy: https://github.com/bufferings/docker-access-host - leginkább ez az ötlet jött jól, ahogy lehet tesztelni ip+port-ot: curl -sS host.docker.internal:8888 (merthogy pinggel ilyet nem tudok).
Kiegészítés:
Az api debuggolásához utánajártam a wireshark parancsori megfelelőjének: tshark, ami elindítható docker entitáson belül is. (Merthogy a gond az, hogy nem jönnek ki onnan az adatcsomagok, s így nem nézhetőek meg pl. burp-ben vagy xdebuggal a szerkesztőben.)
Eleinte reflexszerűen a -i eth0 interfészt figyeltem, tévesen. Inkább a "lo" figyelendő. Ez adott eredményt (verbose üzemmódban): tshark -i lo -V > checkme
Ez aztán full extrásan mutat mindent, ami gyüszmékel ott a hívások során.
- Tovább ([megoldva] vs-code/phpstorm, docker, xdebug)