问题描述
我在一台机器上运行 PHPStorm
,我在另一台机器上运行 PHP-fpm
。我在他们之间有一个 ssh 隧道。
我有以下陈述的证据:
-
ssh
隧道已正确配置并且可以正常工作(我正在使用nc
和nc -l
对其进行测试)。 -
xdebug
配置正确且工作正常(我使用nc -l
接收它的连接,而且我可以成功使用另一个 IDE(vscode)) -
PHPstorm
正在接收传入连接
我的网站不断刷新页面,在我的隧道控制台上我看到不断的消息
connect_to localhost port 9001: Failed
这证明,xdebug
在每次刷新时都尝试连接到 IDE
,但失败了。
那我按
Start listening for PHP Debug Connections
按钮,这些消息就会消失。
这意味着 ssh
现在可以连接到 IDE
。
但问题是没有其他事情发生。没有任何断点触发器,没有出现任何提供映射的对话框,什么都没有。
还有什么可以检查来解决这个问题?
PHP版本为:5.6.33-0+deb8u1 Xdebug 版本为:2.2.5 PHPstorm 版本为:2020.3
以下内容出现在 xdebug
日志中:
Log opened at 2020-12-22 12:14:17
I: Connecting to configured address/port: 127.0.0.1:9001.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///settings/html/load_menu.PHP" language="PHP" protocol_version="1.0" appid="13307" idekey="1"><engine version="2.2.5"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[copyright (c) 2002-2014 by Derick Rethans]]></copyright></init>
<!**************** MY REMARK ********************!>
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
Log closed at 2020-12-22 12:14:17
注意 my remark
的位置。如果我收到与 nc -l 9001
的连接,它会在此等待,直到我断开与 Ctrl-C
的连接。
如果我收到与 PHPStorm
的连接或者如果我没有收到它,它会立即通过这个地方。
这意味着 PHPstorm
接收传入连接并立即将其丢弃。为什么?
如果我收到与 vscode
的连接,很多消息如
<- breakpoint_list -i 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="1"></response>
出现在 my remark
处
解决方法
在设置中没有发现错误。原来是 a bug in PhpStorm 2020.3 和切换到 Preview build 立即帮助。感谢@LazyOne :)