2011-12-09 19 views
9

Ho una finestra di Windows e una macchina virtuale che esegue CentOS. Qualcuno capisce di sapere come posso eseguire il debug di uno script CLI del nodo (che non apre una porta) usando PHPStorm? La "modifica della configurazione" sembra supportare solo la connessione da qualche parte invece di ascoltare le connessioni in entrata.Come eseguire il debug remoto del nodo JS con PHPStorm?

+0

Che cosa stai cercando di ottenere esattamente qui ..? – alessioalex

+0

@alessioalex, imposta il punto di interruzione, leggi vars e così - come con xDebug remoto - imposterò bp in PHPStorm, inizio ascolto, uso putty per eseguire lo script del nodo su vm e comunicherà con l'IDE a fammi fare tutte le cose utili – Fluffy

+1

Un'altra opzione potrebbe essere impostare il tunnel SSH in modo che la porta aperta sul computer locale reindirizzi alla porta sul server remoto. – CrazyCoder

risposta

9

Assicurarsi di aver installato il nodejs plugin.

Se il server ha il pacchetto di bilanciamento disponibile (la mia casella EC2 no), è possibile use this tutorial inoltrare la porta con il bilanciatore.

yum install balance -yt 
balance -df 8585 127.0.0.1.5858 

Molti successo relazione con un'iptables reindirizzamento da eth0 a Lo (non ha funzionato per me) in questo modo:

iptables -t nat -A PREROUTING -p tcp -m tcp -i eth0 --dport 5858 -j DNAT --to 127.0.0.1:5858 

C'è anche un semplice script nodo described in this eclipse debugging tut (vicino alla parte inferiore), che eseguirà il tunneling del debug locale su un host remoto.

Ma una volta che ero così in fondo al percorso, non ho visto il punto in quanto ho familiarità con SSH. Quindi, in definitiva, I went with an SSH tunnel e imposta PHPStorm per eseguire il debug di localhost. SSH Tunnel using putty

PHPStorm configuration

+1

Sembra che PHPStorm abbia appena rilasciato una correzione per [l'errore con i percorsi remoti] (http://youtrack.jetbrains.com/issue/WI-9821?projectKey=WI)! Questo dovrebbe essere molto eccitante. – Kato

+0

hai ancora bisogno di impostare un'intestazione quando ti connetti da un browser come per le sessioni di debug PHP? Inoltre, puoi impostare i breakpoint nel codice all'interno di PHPStorm o devi usare sys.debug()? – codecowboy

6

Per gli utenti non Windows, ecco come configurare il tunnel port forwarding usando ssh:

ssh -f [email protected] -L local_port:localhost:port_on_remote -N 

questo significa "ssh your-remote-host, login come ssh_user Una volta lì aperta. connessione a localhost:port_on_remote ed esporre questa connessione allo della macchina su cui viene eseguito ssh ".

Il pezzo non ovvio è necessario utilizzare localhost, poiché il debugger del nodo si associa solo all'indirizzo IP localhost (e non all'indirizzo a cui risolvere your-remote-host).

Esempio con valori reali:

ssh -f [email protected] -L 5858:localhost:5858 -N 

(sulla base di this howto, appena mi ha portato un po 'di tempo per capire il pezzo localhost).

Problemi correlati