6

我安装了最新的 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
4

6 回答 6

4

你可能有错误的 Xdebug 版本。我会看一下phpinfo()并将那里的信息与 Xdebug dll 的不同版本进行比较。

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

于 2009-12-14T23:08:08.377 回答
3

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

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

http://xdebug.org/wizard.php

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

于 2012-09-02T10:13:36.437 回答
2

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

; 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 部分调整为此端口和会话 ID。

是一个脚本,用于检查(通过 php 方式)您打算与之交谈的端口是否打开。(下面也在评论中,对于那些懒得从图片中输入的人)

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

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

港口边境这个工具也可能会有所帮助。

Quadruplecheck 您将所有内容的 VC6 和 VC9 编译版本分开。

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

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

于 2011-10-12T13:00:44.610 回答
0

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

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

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

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

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

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

于 2010-02-08T22:37:30.223 回答
0

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

报告了一个错误,许多用户抱怨它。

该解决方案似乎是Xampp 上的最新测试版。它包括 xdebug 的 2.0.6 (dev) 版本,它工作得很好。

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

于 2009-12-15T09:01:48.737 回答
0

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

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 开始正常工作。希望这对你也有帮助。

于 2011-05-22T03:02:05.957 回答