2011-12-09 2 views
9

CentOS를 실행하는 Windows 상자와 VM이 있습니다. 누구든지 PHPStorm을 사용하여 노드 CLI 스크립트 (포트를 열지 않음)를 어떻게 디버깅 할 수 있는지 알고 있습니까? "구성 수정"은 들어오는 연결을 듣지 않고 어딘가에 연결하는 것만 지원합니다.원격 디버그하는 방법 PHPStorm을 사용하는 노드 JS?

+0

여기 정확히 달성하려는 것은 무엇입니까? – alessioalex

+0

@alessioalex, 브레이크 포인트 설정, vars 읽기 등 - 원격 xDebug와 동일 - PHPStorm에서 bp를 설정하고 듣기 시작하고 퍼티를 사용하여 VM에서 노드 스크립트를 실행하면 IDE와 통신합니다. 내가 유용한 모든 것을 할 수있게하자. – Fluffy

+1

또 다른 옵션은 SSH 터널을 설정하여 로컬 컴퓨터의 포트가 원격 서버의 포트로 리디렉션되도록 설정할 수있다. – CrazyCoder

답변

9

nodejs plugin이 설치되어 있는지 확인하십시오.

서버에 밸런서 패키지가있는 경우 (내 EC2 상자는 사용하지 않음) use this tutorial을 사용하여 밸런서가있는 포트를 전달할 수 있습니다. 의 iptables와

yum install balance -yt 
balance -df 8585 127.0.0.1.5858 

많은 보고서의 성공은 다음과 같이 (나를 위해 작동하지 않았다) 보라에 eth0를에서 리디렉션 : (하단) 또한 간단한 노드 스크립트 described in this eclipse debugging tut 있습니다

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

, 로컬 디버그를 원격 호스트로 터널링합니다.

하지만 내가 그 길을 따라 가면 SSH에 익숙해 져서 그 점을 보지 못했습니다. 따라서 궁극적으로는 I went with an SSH tunnel이며 로컬 호스트를 디버깅하도록 PHPStorm을 설정하십시오.

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

이것은 "ssh_useryour-remote-host에 SSH, 로그인을 의미 일단이 개방 : SSH Tunnel using putty

비 Windows 사용자 PHPStorm configuration

+1

PHPStorm이 [원격 경로가있는 버그] (http://youtrack.jetbrains.com/issue/WI-9821?projectKey=WI)에 대한 수정본을 방금 공개 한 것처럼 보입니다! 그것은 매우 흥미로 웠습니다. – Kato

+0

PHP 디버그 세션과 마찬가지로 브라우저에서 연결할 때 헤더를 설정해야합니까? 또한, PHPStorm 내의 코드에 중단 점을 설정할 수 있습니까? 아니면 sys.debug()를 사용해야합니까? – codecowboy

6

, 여기에 설정하는 방법 SSH를 사용하여 포트 포워딩 터널을하는 것입니다. localhost:port_on_remote에 연결하고 ssh가 실행되는 컴퓨터의 local_port에이 연결을 노출하십시오. "

노드의 디버거는 로컬 호스트의 IP 주소에만 바인드하므로 (your-remote-host을 해결할 주소가 아닌) 명확하지 않은 부분은 localhost이어야합니다. 실제 값

예 :

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

(this howto에 따라이 단지 localhost 조각을 알아 내기 위해 좀 시간이 걸렸습니다).