PhpStorm-xDebug按需调试未附加



我试用了您的新功能"xedbug on demand"。我坚持这些指南(https://www.jetbrains.com/help/phpstorm/2016.3/configuring-xdebug.html和https://blog.jetbrains.com/phpstorm/2016/06/xdebug-on-demand-for-cli-php-scripts-in-phpstorm-2016-2-eap/)。

我在phpServer菜单中看到,当我添加到PhpStorm识别的xdebug的路径时(标签从"未安装"切换到"XDebugger 2.4.1")。

所以一切似乎都很好,但当我通过bug图标使用调试器时,它从未为断点附加/停止。

我激活了xdebug日志文件,但它一直是空的。

此外,我还评论了php.ini中与xdebug相关的所有内容

xdebug端口仍在9000上(默认值)。

你知道我能做些什么吗?

更新:我通过phpStorm的"PHPWeb应用程序"和调试图标使用调试器。我正在调试通过apachevHost执行的php文件

PS:查看了IntelliJ论坛和Stack的帖子,没有发现任何有用的东西。。。

"Xdebug in demand";选项仅适用于CLI调试("PHP脚本"类型的运行/调试配置也适用于其他CLI模式配置,例如"PHPUnit"),无论是本地还是远程。

引用前面介绍的博客文章:

要使用这个伟大的新功能,首先需要禁用命令行PHP脚本的Xdebug


该选项不适用于通过web浏览器(例如Apache/nginx/IIS)提供服务的网页,也不适用于仅侦听任何传入调试连接(零配置方法)时(其中实际调试是在IDE外启动的)。

原因很简单:当启动CLI脚本的调试器时,IDE会启动您的php可执行文件(您配置的php解释器,例如Windows上的php.exe),并附带额外的参数(-z:检查php --help输出或此处),以加载此类额外的扩展。

但当你调试一个网页时,整个PHP并不是由PhpStorm控制的:它是你的web服务器(Apache/nginx/IIS/etc)与PHP通信。。在这个阶段你不能通过这样的争论。