2009-12-14 152 views
6

我安装了包含PHP 5.3.0的最新XAMPP程序包。我试图启用Xdebug,但它不会工作。无法让Xdebug在Windows 7上工作

这是我在随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 

阿帕奇启动正常,但是当我在浏览器中打开http://localhost/,我得到以下错误:

alt text

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

我正在运行全新安装的Windows 7旗舰版64位。

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

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

回答

4

这是可能的,你有Xdebug的版本错误。我会看看phpinfo(),并将其中的信息与different versions of the Xdebug dll进行比较。

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

+0

线程安全已启用。 PHP符合VC6。我抓住了线程安全的5.3 VC6,并没有加载32位风格和64位风格。但是,Apache不会再崩溃了。 – Derek 2009-12-14 23:24:55

+0

这是有帮助的,我有PHP 5.4,但试图安装5.3 DLL虽然没有给出错误。 – Nap 2013-05-23 04:21:57

0

是的,有一个已知的问题 - 几乎是不可能得到的Xdebug与最新的XAMPP和64位Vista/Win的7

工作有许多用户抱怨它报道了bug

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

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

0

像其他人一样,你需要匹配你的xdebug版本和你的php版本。

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

如果您还没有弄明白(这是旧线程),你缺少的是INI配置。如果要装载这是线程安全的模块,您需要使用以下行:

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

如果模块线程安全的,那你就用你已经尝试使用INI指令。

这只适用于zend_extension的而不是常规扩展。

+1

注意:即使PHP和Apoache是​​TS,使用_ts对于Apache 2.2.21,PHP 5.3在W7 x64下也是不正确的,即使使用正常密钥(只要将正确的dll赋给它,那个不承载_nts_在里面)。也许这是正确的。 – 2011-10-12 12:40:38

+0

你是对的,怀疑有人会在这一刻看到我的帖子,但我更新了它 – dcousineau 2011-10-13 03:57:11

0

当xdebug不是与XAMPP一起安装的时候,只需要PHP(32位,TS,VC6,在C:\ Program Files(x86)\ PHP)和Apache(32位)在Windows 7(64位),在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的开始正常工作。希望这对你也有帮助。

2

坦率-LY,我也有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的错字(无r)在网上多次。谨防。

关于idekey的说明:上述idekey确实在phpinfo()中显示为主值,但是使用像MYMACHINENAME $这样的“本地值”覆盖了 。 ==>设置名为DBGP_IDEKEY的全局env var(在计算机属性中)并重新启动(或者只是注销)到(也)netbeans-xdebug帮助!再次:重新检查phpInfo()是否生效。

当然调整netbeans的菜单:选项 - > PHP标签 - >调试节到此端口和会话ID。

Here是一个脚本,以检查(由PHP意味着)如果你打算跟该端口是开放的。 (在下面的评论中也有进一步的说明,对于那些懒惰的人也可以从图像中删除)

为了让浏览器连接起来,不要开始忘记(在沮丧中)始终附加调试开始的get参数:

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

口边防,也this tool可能的帮助。

Quadruplecheck你正在保持VC6和VC9编译版本的一切。

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

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

3

你试过了XDebug的自定义安装向导,它分析你的PHP安装,并提供您需要的具体步骤按照

的Windows可执行文件通常为所提到的PHP版本,每一个版本的迷你工作,虽然扩展针对当时最新的PHP版本内置。 VCx标记表明扩展是由哪个编译器构建的,以及ZTS是否被禁用,非线程安全。这些限定符需要匹配您使用的PHP版本。如果您不知道您需要哪一个,请参阅自定义安装说明。

http://xdebug.org/wizard.php

只需粘贴你的phpinfo出来放在文本框中,你会得到确切的XDebug DLL,你需要为你的PHP

+0

这真是太棒了。唯一的问题是它将它直接安装到PHP中,所以您需要稍微调整一下才能从命令行运行 - 这是一些工具的作用。 – Dunhamzzz 2012-09-06 13:38:37

+0

巫师救了我,没有别的我尝试过工作。最终成为绝对vs.相对路径。 – Josh 2015-01-17 22:21:15

相关问题