如果你在防火墙后面的NAT上,如何使用php xdebug?

时间:2010-09-25 13:35:51

标签: php firewall xdebug remote-debugging

我有以下用于调试PHP应用程序的用例:

  • 开发者确实拥有私人IP地址
  • 开发人员只能从服务器连接到有限数量的端口,如80,8080,3128,其他端口受到传出防火墙的限制。如果传出请求是HTTP,他仍然可以使用没有此限制的代理。
  • 服务器机器是完全可配置的

在这种情况下可以使用xdebug吗?怎么样?

可以建立VPN,但这不是一个简单的解决方案,所以我更倾向于简化。

2 个答案:

答案 0 :(得分:12)

我找到的解决方案是使用PuTTY将端口9000从服务器转发到客户端(IDE)。

putty configuration screenshot

只需将Xdebug配置为连接到localhost,而不是运行客户端(IDE)的IP地址:

xdebug.remote_host = localhost
xdebug.remote_port = 9000
xdebug.remote_connect_back = 0

a nice article called Remote Debugging PHP with a Firewall in the Way描述了这个以及Xdebug配置和SSH端口转发方法。

答案 1 :(得分:3)

另一种变体是使用SSH端口转发(也可以在Cygwin中使用)。

只需执行:

ssh -R 9000:127.0.0.1:9000 host.example.com

它创建一个隧道,将远程主机上的端口9000转发到本地主机上的端口9000

其他一切与PuTTY方法相同(参见 sorin 的回答)。