2015-10-09 24 views
5

Sono riuscito a ottenere xdebug in combinazione con docker e phpstorm. Per le chiamate http ... IExdebug in phpstorm e docker

http://192.168.99.100:8081/?XDEBUG_SESSION_START=PHPSTORM

Ma quando si tenta di eseguire i miei phpunit test, Non collega con PhpStorm

ho fatto la giusta giusta mappatura directory in PhpStorm, e anche eseguito il seguendo il mio esempio di finestra mobile export XDEBUG_CONFIG="idekey=PHPSTORM"

Ho provato anche sulla mia finestra mobile: export PHP_IDE_CONFIG = 'serverName = web.docker' e ho chiamato il server config su phpstorm web.docker. funziona ancora su http ma non su CLI

Quindi posso anche far funzionare phpstorm e xdebug insieme per la riga di comando?

qui è il mio file: /etc/php5/cli/conf.d/20-xdebug.ini

zend_extension=xdebug.so 
xdebug.remote_enable=1 
xdebug.idekey=PHPSTORM 
xdebug.remote_connect_back=1 
xdebug.remote_host=172.17.42.1 
dxdebug.remote_autostart=1 

Quando accendo la registrazione, e giocare con l'indirizzo IP xdebug_remote_host ottengo

W: Remote address not found, connecting to configured address/port: localhost:9000. :-| 
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:20:39 

Log opened at 2015-10-13 12:22:58 
I: Checking remote connect back address. 
W: Remote address not found, connecting to configured address/port: 172.17.42.1:9000. :-| 
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:22:58 

Log opened at 2015-10-13 12:23:58 
I: Checking remote connect back address. 
W: Remote address not found, connecting to configured address/port: 192.168.99.100:9000. :-| 
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:23:58 

Solution (edit) Girando sul xdebug logging, ho visto che si stava connettendo con successo a 192.168.99.1 quindi questo ha risolto il problema

xdebug.remote_host=192.168.99.1 
+1

Per IDE di debug remoto utilizza il server/nome host id univoco per decidere mappature quale strada usare ('PHP | Server '). Per il debug della CLI tali informazioni non sono fornite (da nessuna parte), quindi è necessario fornirle manualmente (in modo simile a quello che hai fatto con idekey) - 'serverName = ServerNameHere'. Inoltre: https://devnet.jetbrains.com/message/5534075#5534075 – LazyOne

+0

Non ho capito al 100% il tuo suggerimento, ma comunque ho provato sulla mia finestra mobile: 'export PHP_IDE_CONFIG = 'serverName = web.docker'' e named la configurazione del server su phpstorm web.docker. funziona ancora su http ma non su CLI – Confidence

+0

1) Puoi leggere sul debug CLI remoto/su quel parametro serverName [qui] (https://youtrack.jetbrains.com/issue/WI-7906) 2) Qual è il tuo 'PHP | Sembra che i server (screenshot per favore) 3) Prima di eseguire il debug di PHPUnit .. provare a eseguire il debug di uno script semplice (posizionarlo nella root del progetto, sia locale che remoto) - almeno garantirai che non funziona correttamente nel debug in generale e non in phpunit momento specifico. 4) Che cosa dice xdebug log su questo tentativo fallito (assicurati che sia chiaro/contiene solo i dettagli di questa richiesta) – LazyOne

risposta

4

Due cose mi vengono in mente in questo momento:

  1. È xdebug.remote_host impostato correttamente? Per il collegamento HTTP hai fornito un indirizzo 192.168., per il ritorno è un indirizzo 172.17.. Puoi eseguire il ping del tuo host su quell'IP?

  2. Nel file ini si legge:

    dxdebug.remote_autostart=1 
    

    E 'solo un errore di battitura qui, o è che in realtà nel file di configurazione? Perché dovrebbe leggere xdebug senza la "d" di fronte. Dovrebbe essere:

    xdebug.remote_autostart=1 
    

    Si deve solo aggiungere il d quando si aggiunge l'opzione durante l'esecuzione dello script come questo:

    php -dxdebug.remote_autostart=1 script.php 
    

Se il problema persiste ancora, si prega di abilitare la registro remoto aggiungendo qualcosa come questo alla configurazione:

xdebug.remote_log = /var/log/xdebug_remote.log 

forse questo aiuterà a trovare il problema.

+0

1. sì, posso 'ping 172.17.42.1'. – Confidence

+0

altrimenti si prega di controllare il mio argomento modificato. – Confidence

+0

grazie Pampy, il tuo suggerimento con la disattivazione della registrazione ha mostrato che si stava connettendo al seguente IP 'xdebug.remote_host = 192.168.99.1' quindi impostandolo, ora va tutto bene. – Confidence

1

Quello che ha funzionato per me è tunnel SSH con questa configurazione xdebug.remote_connect_back = 0 xdebug.remote_host = 127.0.0.1

See: Xdebug with SSH tunnel on Docker for Mac

+0

Non posso credere, ma questo era il problema nel mio caso. Grazie Eugenio – manuelbcd