【问题标题】:How to remote debug Node JS with PHPStorm?如何使用 PHPStorm 远程调试 Node JS?
【发布时间】:2012-01-16 17:57:11
【问题描述】:

我有一个 windows 盒子和一个运行 CentOS 的 VM。有谁知道我如何使用 PHPStorm 调试节点 CLI 脚本(不打开端口)? “编辑配置”似乎只支持连接某处而不是监听传入的连接。

【问题讨论】:

  • 你到底想在这里实现什么..?
  • @alessioalex,设置断点,读取变量,等等——和远程 xDebug 一样——我将在 PHPStorm 中设置 bp,开始监听,使用 putty 在 vm 上运行节点脚本,然后它'将与 IDE 通信,让我做所有有用的事情
  • 另一种选择是设置 SSH 隧道,以便本地机器上打开的端口重定向到远程服务器上的端口。

标签: debugging node.js phpstorm


【解决方案1】:

确保您已安装 nodejs plugin

如果您的服务器有可用的平衡器包(我的 EC2 盒子没有),您可以use this tutorial 使用平衡器转发端口。

yum install balance -yt
balance -df 8585 127.0.0.1.5858

许多报告成功通过 iptables 重定向从 eth0 到 lo(对我不起作用),如下所示:

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

还有一个简单的节点脚本described in this eclipse debugging tut(靠近底部),它将您的本地调试隧道传输到远程主机。

但是一旦我走得那么远,我就没有明白这一点,因为我熟悉 SSH。所以最终,I went with an SSH tunnel 并设置 PHPStorm 来调试 localhost。

【讨论】:

  • 看起来 PHPStorm 刚刚发布了针对 the bug with remote paths 的修复程序!这应该是非常令人兴奋的。
  • 在从浏览器连接时是否还需要设置标头作为 PHP 调试会话?另外,您可以在 PHPStorm 中的代码中设置断点还是需要使用 sys.debug()?
【解决方案2】:

对于非 Windows 用户,这里是如何使用 ssh 设置端口转发隧道:

ssh -f ssh_user@your-remote-host -L local_port:localhost:port_on_remote -N

这意味着“ssh 到your-remote-host,以ssh_user 登录。一旦打开到localhost:port_on_remote 的连接并在运行ssh 的机器的local_port 上公开此连接”。

不明显的部分是您需要使用 localhost,因为 Node 的调试器仅将自身绑定到 localhost ip 地址(而不是绑定到 your-remote-host 将解析的地址)。

实数值示例:

ssh -f me@nodeserver.com -L 5858:localhost:5858 -N

(基于this howto,我花了一些时间才弄清楚localhost 的部分)。

【讨论】:

    猜你喜欢
    • 2018-12-22
    • 2014-12-03
    • 2014-01-16
    • 2015-07-04
    • 2011-11-06
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 2019-07-25
    相关资源
    最近更新 更多