无法让 Xdebug 在 Windows 7 上运行

Posted

技术标签:

【中文标题】无法让 Xdebug 在 Windows 7 上运行【英文标题】:Can't get Xdebug to work on Windows 7 【发布时间】:2010-12-26 14:58:32 【问题描述】:

我安装了最新的 XAMPP 包,其中包括 php 5.3.0。我正在尝试启用 Xdebug,但它不起作用。

这是我在 XAMPP 附带的 php.ini 中所做的更改:

; uncommented
zend_extension = "X:\xampp\php\ext\php_xdebug.dll"

; added the following lines:
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

Apache 启动正常,但是当我在浏览器中打开 http://localhost/ 时,出现以下错误:

如果我单击Close the program 按钮,错误消息将在一秒钟内重新出现,就好像它处于无限循环中一样。非常感谢任何帮助以使其正常工作。

我正在运行全新安装的 Windows 7 Ultimate 64 位。

编辑: 从 phpinfo() 的结果来看:

Zend Extension Build    API220090626,TS,VC6 
PHP Extension Build     API20090626,TS,VC6 
Debug Build             no 
Thread Safety           enabled

【问题讨论】:

【参考方案1】:

您可能使用了错误的 Xdebug 版本。我会查看phpinfo() 并将那里的信息与different versions of the Xdebug dll 进行比较。

具体来说,您想查看是否启用了“线程安全”,并且您需要知道您运行的是 VC6 编译的 PHP 还是 VC9(如果您使用的是 Apache,几乎可以保证您想要VC6)。

【讨论】:

线程安全已启用。 PHP 符合 VC6。我抓住了线程安全的 5.3 VC6,没有加载 32 位版本和 64 位版本。但是,Apache 不再崩溃了。 这很有帮助,我有 php 5.4,但尝试安装 5.3 dll,但没有给出错误。【参考方案2】:

您是否尝试过 XDEBUG 的自定义安装向导,它会分析您的 php 安装并提供您需要遵循的确切步骤

Windows 二进制文件通常适用于上述 PHP 版本的每个迷你版本,尽管该扩展是针对当时最新的 PHP 版本构建的。 VCx 标记告知扩展是使用哪个编译器构建的,以及是否禁用 ZTS 是非线程安全的。这些限定符需要与您使用的 PHP 版本相匹配。如果您不知道自己需要哪一个,请参考自定义安装说明。

http://xdebug.org/wizard.php

只需将您的 phpinfo 粘贴到文本框中,您将获得您的 php 所需的确切 xdebug dll

【讨论】:

这太棒了。唯一的问题是它直接将其安装到 PHP 中,因此您需要进行更多调整才能从命令行运行它 - 这是一些工具所做的。 向导救了我,我试过的其他方法都没有用。最终成为绝对路径与相对路径。【参考方案3】:

坦率地说,我也有 2 天非常糟糕,我现在不知道最终解决了什么问题, 所以这是我收集的注意事项和陷阱:

; this is the thread safe version,
; the absence of _nts_ in the dll name 'shows' this
; do not use _ts, your library won't get registered and won't show in phpInfo()
zend_extension = "D:/wamp/bin/php/php5.3.8/zend_ext/php_xdebug-2.1.2-5.3-vc9-x86_64.dll"

检查你的 php.ini,检查 phpinfo() 是否所有值(到达)

xdebug.remote_enable = on
xdebug.remote_handler=dbgp
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
; if you have multiple virtual hosts ( like 'local.fooclient' )
; maybe using the IP is safer (for any same-machine-debugging)
xdebug.remote_host=127.0.0.1
; maybe a -much- lower port helped, 84 was free. use netstat to figure out.
xdebug.remote_port=84
; idekey! also see note below
xdebug.idekey=netbeans-xdebug

更多陷阱:

我在网上多次看到 xdebug.remote_handle(没有 r)的错字。小心。

关于 idekey 的注释:上面的 idekey 确实在 phpinfo() 中显示为主值,但是 被 MYMACHINENAME$ 之类的“本地值”覆盖。 ==> 设置一个名为 DBGP_IDEKEY 的全局环境变量(在计算机属性中)并重新启动(或者可能只是注销)到(也)netbeans-xdebug 有帮助!再次:重新检查 phpInfo() 才生效。

当然要调整 netbeans-menu:options->php tab->debugging 部分到这个端口和 session id。

Here 是一个脚本,用于检查(通过 php 方式)您打算与之通信的端口是否打开。 (下面还有 cmets,对于那些懒得从图片中打字的人来说)

为了让您的浏览器能够连接,不要开始忘记(在沮丧中)始终附加调试启动 get-argument:

  http://localhost/myTest.php?XDEBUG_SESSION_START=netbeans-xdebug

港口边境,this tool 也可能有所帮助。

四重检查,您将 VC6 和 VC9 编译版本的所有内容分开。

从命令行运行whatever/path/php.exe myTest.php(一旦完成上述设置)也可能会显示其他错误(确实如此,而我正在修补不正确的 dll)。

我可以推荐http://www.wampserver.com (出于个人原因,它比流行的 xampp 包更适合我......)

【讨论】:

【参考方案4】:

是的,有一个已知问题 - 几乎不可能让 Xdebug 与最新的 Xampp 和 64 位 Vista/Win 7 一起工作。

有一个bug 被举报,许多用户抱怨它。

解决方案似乎是latest beta version on Xampp。它包括 xdebug 的 2.0.6 (dev) 版本,它工作得很好。

我在 64 位 Vista 上测试了大约 10 天,还没有遇到任何问题。

【讨论】:

【参考方案5】:

当 xdebug 不使用 XAMPP 安装时,仅使用 PHP(32 位、TS、VC6,在 C:\Program Files (x86)\PHP 中)和 Windows 7(64 位)上的 Apache(32 位),在 php .ini 您需要指定x86 Program Files 之类的文件夹的完整路径。

zend_extension="C:\Program Files (x86)\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll"

zend_extension="C:\Program Files\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll"

这是我的错误,当更改为 x86 文件夹时,xdebug 开始正常工作。希望这对您也有帮助。

【讨论】:

【参考方案6】:

正如其他人所说,您需要将您的 xdebug 版本与您的 php 版本相匹配。

您已经匹配了 PHP 版本号、线程安全和编译器。

如果您还没有弄清楚(这是一个旧线程),您缺少的是 INI 配置。如果您正在加载一个线程安全的模块,您需要使用以下行:

zend_extension="C:\Path\To\The\Extension.dll"

如果模块不是线程安全的,那么你就使用你一直在尝试使用的INI指令。

这仅适用于 zend_extension 而非常规扩展。

【讨论】:

注意:使用 ts 对于 Apache 2.2.21、W7 x64 下的 PHP 5.3 是不正确的,即使 PHP 和 Apoache 是 TS,使用普通键(只需分配正确的 dll 到它,就是其中没有 _nts 的那个)。也许前一段时间它是正确的。 你是对的,怀疑有人会在此时看到我的帖子,但我更新了它

以上是关于无法让 Xdebug 在 Windows 7 上运行的主要内容,如果未能解决你的问题,请参考以下文章

Xdebug + XAMPP + Netbeans = 失败。无法让调试器在 Netbeans 中工作

Windows 环境下 PHP 安装 xdebug 及配置

phpstorm xdebug 无法断点调试问题

无法在 XAMPP 和 Windows XP 上安装 Xdebug

无法使用 XAMPP 和 PHP 7.3.0 配置 Xdebug

windows10 + IntelliJ IDEA 2017.2.7 + wamp2e + xdebug 调试 配置