尽管 XDebug 日志显示连接成功,但无法通过本地 PuTTY SSH 代理 + 隧道在 PHPStorm 中使用 XDebug

尽管 XDebug 日志显示连接成功,但无法通过本地 PuTTY SSH 代理 + 隧道在 PHPStorm 中使用 XDebug

这是一个令人困惑的问题。

我需要使用 XDebug 来处理远程托管的 PHP 项目。远程服务器有防火墙,只接受来自第二个远程服务器的连接,因此为了连接到项目服务器,我需要通过 SSH 代理进行连接。

这部分不是问题;我使用它的Proxy设置通过 PuTTY 进行连接,然后我设置了端口隧道以便在本地机器和项目服务器之间与 XDebug 进行通信。

我从本地计算机通过隧道传输到远程服务器上的 SSH 端口 22(通过本地端口 2222),然后从远程服务器通过隧道传输到本地计算机的端口 9009,PHPStorm XDebug 客户端在该端口进行监听。

从理论上讲,这似乎是可行的;请求通过“中间”机器的代理在我的本地机器和项目服务器之间进行传输。

然而,PHPStorm 拒绝承认它可以连接到 XDebug。它验证设置是否一切正常,并且可以“看到”XDebug 服务器。XDebug 的远程日志显示连接成功,但 PHPStorm 却不这么认为。

PHPStorm 验证设置(记住localhost使用是因为端口是隧道的): 在此处输入图片描述

但是当我尝试运行调试器时出现此错误:

在此处输入图片描述

XDebug 表示连接成功:

[25936] Log opened at 2020-03-12 05:31:10
[25936] I: Connecting to configured address/port: localhost:9009.
[25936] I: Connected to client. :-)
[25936] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///var/xxx/index.php" language="PHP" xdebug:language_version="7.2.24" protocol_version="1.0" appid="xxx" idekey="PHPSTORM"><engine version="2.9.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2020 by Derick Rethans]]></copyright></init>

其他 PHPStorm 设置:

在此处输入图片描述

PuTTY 设置:

在此处输入图片描述

在此处输入图片描述

相关内容