PhpStorm - 按需 xDebug 未附加

Posted

技术标签:

【中文标题】PhpStorm - 按需 xDebug 未附加【英文标题】:PhpStorm - xDebug on demand not attaching 【发布时间】:2017-05-31 03:22:46 【问题描述】:

我试用了您的新功能“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/)。

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

所以一切似乎都很好,但是当我通过错误图标使用调试器时,它永远不会为断点附加/停止。

我激活了 xdebug-Logfile,但它完全是空的。

此外,我在 php.ini 中注释掉了所有与 xdebug 相关的内容。

xdebug-port 仍然是 9000(默认)。

有什么想法我能做些什么吗?

更新:我正在通过 phpStorm 的“PHP Web 应用程序”和调试图标使用调试器。我正在调试通过 apache vHost 执行的 php 文件。

PS:检查了 IntelliJ 论坛和 Stack 帖子,但没有发现任何有用的信息...

【问题讨论】:

请提供详细信息——您要调试什么等;请截图。 @LazyOne 更新了我的帖子。没有什么可以截图 afaik 信息够了 P.S.考虑在您最初的问题的最后添加您的更新.. 或至少使其更清晰(“更新”或类似内容的粗体字体),以便更容易找到它。 说得好,现在为时已晚,但仍然编辑了我的帖子。 【参考方案1】:

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

引用上述introduction blog post:

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


该选项不适用于通过网络浏览器提供的网页(例如 Apache/nginx/IIS)或仅在侦听任何传入调试连接 (Zero-config approach) 时,实际调试在外部启动IDE。

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

但是当您调试网页时,整个 PHP 不受 PhpStorm 控制:与 PHP 通信的是您的 Web 服务器 (Apache/nginx/IIS/etc) .. 在此阶段您不能传递此类参数。

【讨论】:

好的,非常好的答案!非常感谢!

以上是关于PhpStorm - 按需 xDebug 未附加的主要内容,如果未能解决你的问题,请参考以下文章

xdebug、PhpStorm 和 Laravel 3 / mod_rewrite 未命中断点

wampserver+phpstorm+xdebug

phpstorm 配置xdebug

phpstorm 配置xdebug

phpstorm 配置xdebug

phpstorm xdebug