如果您位于防火墙后面的 NAT,如何使用 php xdebug?

发布于 2024-09-25 01:45:23 字数 258 浏览 6 评论 0原文

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

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

在这种情况下可以使用 xdebug 吗?如何?

可以建立 VPN,但这不是一个简单的解决方案,因此我更喜欢简化的解决方案。

I have the following use case for debugging a PHP application:

  • The developer does have a private IP address
  • The developer can connect only to a limited number of ports from the server, like 80, 8080, 3128, others being limited by the outgoing firewall. Still if the outgoing requests are HTTP he could use a proxy that does not have this limitation.
  • the server machine is fully configurable

Is is possible to use xdebug in this circumstance? How?

It is possible to establish a VPN but this is not an easy solution so I would prefer a simplified one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情话难免假 2024-10-02 01:45:23

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

putty 配置截图

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

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

一篇名为远程调试 PHP 的好文章防火墙的方式描述了这一点,还有 Xdebug 配置和 SSH 端口转发方法。

The solution I found was to use PuTTY to forward the port 9000 from the server to the client (IDE).

putty configuration screenshot

Just configure the Xdebug to connect to the localhost instead of an IP address your client (IDE) is running on:

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

There is a nice article called Remote Debugging PHP with a Firewall in the Way describing this and also the Xdebug configuration and SSH port forwarding method.

赠意 2024-10-02 01:45:23

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

只需执行:

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

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

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

Another variant is to use SSH port forwarding (can be used also in Cygwin).

Simply execute:

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

It creates a tunnel which forwards the port 9000 on the remote host to the port 9000 on the localhost.

Everything else is the same as in the PuTTY method (see sorin's answer).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文