![尽管 XDebug 日志显示连接成功,但无法通过本地 PuTTY SSH 代理 + 隧道在 PHPStorm 中使用 XDebug](https://linux22.com/image/1617973/%E5%B0%BD%E7%AE%A1%20XDebug%20%E6%97%A5%E5%BF%97%E6%98%BE%E7%A4%BA%E8%BF%9E%E6%8E%A5%E6%88%90%E5%8A%9F%EF%BC%8C%E4%BD%86%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%E6%9C%AC%E5%9C%B0%20PuTTY%20SSH%20%E4%BB%A3%E7%90%86%20%2B%20%E9%9A%A7%E9%81%93%E5%9C%A8%20PHPStorm%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20XDebug.png)
这是一个令人困惑的问题。
我需要使用 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 设置: