10

我在三台不同的计算机上安装了 Windows XAMPP 包,其中两台运行 Windows Vista 32 位(1 台 Ultimate / 1 台 Home Premium),1 台运行 Windows Vista 64 Home Premium。

在 php.ini 中启用 xdebug 并重新启动 apache 后,查看默认的 XAMPP localhost 索引会导致 apache 每次都以相同的方式崩溃,并报告“php_xdebug.dll”作为故障模块名称。

这是来自 Windows Crash Reporter 的完整报告:

Problem signature:
Problem Event Name: APPCRASH
Application Name:   apache.exe
Application Version:    2.2.9.0
Application Timestamp:  4853f994
Fault Module Name:  php_xdebug.dll
Fault Module Version:   2.0.3.0
Fault Module Timestamp: 47fcd9b9
Exception Code: c0000005
Exception Offset:   00008493
OS Version: 6.0.6001.2.1.0.768.3
Locale ID:  1033
Additional Information 1:   a34a
Additional Information 2:   c9c5f4fd744690d388ab9d5b3eb051a7
Additional Information 3:   cb2e
Additional Information 4:   650bb5690556a17e911375b94d3e16f0

我试过用谷歌搜索这个问题,但没有找到任何解决方案,只报告了类似的错误。

编辑:我为 php_xdebug.dll 启用了扩展行,到目前为止似乎已经停止了崩溃。

4

24 回答 24

6

我正在使用 xDebug 在我的 Win7 机器上运行适用于 Windows 版本 1.7.1 的 XAMPP,它运行良好。

检查您是否安装了 SP1,然后按照以下说明操作

  1. 找到包含的行implicit_flush并将其设置如下:

    implicit_flush = On

  2. 找到被调用的部分[Zend]并通过在每行的开头放置一个分号(“;”)来注释掉所有的行。

  3. 找到该行:zend_extension = "c:\xampp\php\ext\php_xdebug.dll"并取消注释。

  4. 找到该[XDebug]部分并取消注释所有行(第一行是实际注释除外)。对于 Windows,它应该类似于以下示例:

    [XDebug]
    ;; Only Zend OR (!) XDebug
    zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"
    xdebug.remote_enable=true
    xdebug.remote_host=localhost
    xdebug.remote_port=10000
    xdebug.remote_handler=dbgp
    xdebug.profiler_enable=1
    xdebug.profiler_output_dir="C:\xampp\tmp"
    
于 2009-05-07T10:07:01.210 回答
2

我在互联网上寻找这个问题并尝试了很多解决方案,但都没有奏效。我尝试了这个配置,只是最后一次测试并为我工作,在 Eclipse 中更改 Windows/Preferences/PHP/Debug 并选择 Xdebug 作为 PHP 调试器。

于 2011-06-14T00:39:19.473 回答
1

确保您拥有最新版本的 xdebug?我在使用旧版本的 xampp 时遇到了同样的问题,下载了最新的 xdebug .dll,更改了 php.ini 中的映射,并且得到了很好的解决。

我花了几个小时才搞定.. grr

于 2009-01-20T22:58:55.450 回答
1

尤金适合我。

  • http://xdebug.org/download.php
    下载非线程安全的 dll 即 5.2 VC6 Non-thread-safe (32 bit)

  • 将其保存到您的\xampp\php\ext目录中

  • 打开你的 php.ini
    C:\xampp\php\php.ini

滚动到底部并查找[XDebug]和替换

zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll"

有了这个

zend_extension="C:\xampp\php\ext\php_xdebug-2.0.5-5.2-nts.dll"

所以它看起来像这样:

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension="C:\xampp\php\ext\php_xdebug-2.0.5-5.2-nts.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="C:\xampp\tmp"
于 2009-07-23T20:38:42.730 回答
1
  1. 打开 xampp\apache\bin 文件夹中的 php.ini(不在 xampp\php 文件夹中)。
  2. 找到 extension=php_xdebug.dll 行。
  3. 取消注释它。
于 2009-02-04T00:24:02.480 回答
1

我得到了一个适用于 Vista 的解决方案,使用上述组合,所以如果这对这里的任何人有帮助......

Eclipse Europa - 版本:3.3.2 内部版本号:M20080221-1800

XAMPP - win32 版本 1.6.8 安装程序

xdebug - php_xdebug-2.0.2-5.2.5.dll

~/xampp/apache/bin/php.ini 的内容

[Zend]
;zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
;zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
;zend_optimizer.enable_loader = 0
;zend_optimizer.optimization_level=15
;;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension_ts="C:\xampp\php\ext\php_xdebug-2.0.2-5.2.5.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="C:\xampp\tmp"

对我来说绝对关键的一点......

;extension=php_xdebug-2.0.2-5.2.5.dll

这是正确的 !注释掉上面的行。

希望这可以帮助

于 2009-02-25T12:59:48.207 回答
1

安装新版本的 XAMPP

于 2010-02-02T02:24:37.650 回答
1

我找到了解决这个问题的方法。你可以在这里找到它:http ://wiki.mpsoftware.dk/index.php?title=Tutorial_on_how_to_configure_Xdebug_to_work_with_phpDesigner_2008

问题是 XDebug 与 Zend 优化器不兼容,因此您需要注释 [Zend] 部分下的所有部分。

于 2009-01-17T23:57:53.203 回答
1

通过其他一些论坛,我发现了一个可能的提示 - 虽然 xampp 上的 apache 通常使用 apache/bin 目录中的 php.ini,但有些模块不使用。所以我玩弄了那个目录中的 php.ini (到目前为止,简单地将它移出对我有用的方式,如重命名/删除它)。至少可能想试一试。

于 2008-11-04T10:44:10.360 回答
1

PHP 通常只能有一个引擎级扩展。我目前在我的机器上使用最新的 xampp lite 包,带有 xdebug 并且它很好。

使用 grep(Windows 的 gnu32 包)或其他一些文本过滤器,获取 PHP 文件中包含“扩展”一词的每一行的列表,并确保您确切知道哪些包正在用于您的 wamp 堆栈。

接下来。xdebug 作为引擎扩展效果更好,但正如一些人指出的那样,它也可以用作常规扩展。引擎和普通扩展之间的性能损失是分析几乎没有那么准确,编辑器-> 服务器调试不可靠,并且除了显式 xdebug_break() 语句之外似乎无法正常工作。

最后要尝试的几件事是调用 php -i 并将其通过管道传输到文本文件。如果它在那里崩溃,那么是时候采取更严厉的措施了。在您的 Windows 机器上找到所有 php.ini 文件,并将它们一一重命名为 php.disabled.ini 或 disabled_php.ini 之类的名称,然后再次尝试 php -i 调用。很可能你有一个 php.ini 文件潜伏在一些奇怪的位置,比如 c:\ | c:\windows\ | c:\windows\system 或其他在路径中优先的地方然后你期望它是 xammp\apache\bin

于 2009-02-04T15:08:28.810 回答
1

可能我的经验会有用:我使用 XAMPP 1.7.4,当尝试使用 xdebug 2.1.0 从 eclipse 调试 php 页面时,apache 总是崩溃...我用 xdebug 2.0.5 替换了 xdebug 2.1.0,现在一切正常

于 2011-03-04T09:12:31.297 回答
1

这里有一个 Windows 兼容性列表。似乎Vista不支持xdebug ...

于 2009-02-12T03:58:15.443 回答
1

我也有这个问题。将您安装的 XAMPP 降级到以前的版本,并且该错误已修复。我不确定究竟是什么原因造成的,但这是目前已知的唯一解决方案。您可以在此处获取第二个最新版本。

于 2009-02-12T04:15:00.083 回答
1

这可能对某人有帮助。在使用 Eclipse 和 XDebug 调试 PHP 网页时,我遇到了可重复的 Apache 崩溃,并尝试了各种重新安装和 PHP.INI 更改,最终发现我的问题与在单独的文件中使用重复的变量名有关。一个文件包含另一个文件,并且两者都有(比如说)$foo。一旦我在第二个文件中将 $foo 重命名为 $newfoo 并重新启动 Apache,我就摆脱了崩溃。

此外,有点相关,我永远无法让 PHP.INI 文件像这里和其他地方广泛记录的那样工作。我必须从 zend-extension 中删除 _ts,如下所示,以获取 phpinfo() 文本:使用 Xdebug v2.0.5,版权所有 (c) 2002-2008,由 Derick Rethans 提供。

XAMPP 1.7.2(使用自带的 php_xdebug.dll) PHP 5.3.0

这是我的 PHP.INI 文件片段:

xdebug.remote_enable=1 xdebug.remote_host="127.0.0.1" xdebug.remote_port=9000 xdebug.remote_handler="dbgp" zend_extension="C:\xampp\php\ext\php_xdebug.dll"

于 2009-10-13T20:31:04.787 回答
1

我有同样的问题。它已由最新版本的 xdebug (2.0.6) 解决。它仍处于开发模式,但对我来说它比以前的版本更稳定 :)

它是 XAMPP 1.7.3beta 的一部分http://www.apachefriends.org/en/xampp-beta.html

启用 xdebug 只需取消注释 xampp/php/php.ini 中的一行

高温高压

于 2009-12-09T19:15:14.993 回答
1

Matty 的回答帮助我防止 Apache 崩溃,但我无法让远程调试会话正常工作。每当我尝试单步执行代码时,我的客户都会抱怨连接已关闭,所以我还没有调试。

但是,如果它对其他人有用,这里是我在 XAMPP 1.6.8 中对 apache\bin\php.ini 文件所做的编辑(在 1.7.0 中也是如此)。第 671 行:

extension=php_xdebug-2.0.4-5.2.8.dll

我添加了第 1297 行:

[XDebug]
;; Only Zend OR (!) XDebug
zend_extension_ts="\xampplite\php\ext\php_xdebug-2.0.4-5.2.8.dll"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir="\xampplite\tmp"
xdebug.trace_output_dir="\xampplite\tmp"
于 2009-02-19T21:45:37.383 回答
1

在谷歌搜索时遇到了这个问题,为什么 XDebug 会导致我的 WAMP Apache 崩溃。我刚刚使用当前版本的 WAMP(2.0) 升级到 Vista 64 笔记本电脑,这是我在 php.ini 中放入的内容,以使崩溃停止。

我使用 NetBeans 作为我的 IDE,并且调试工作得很好。

首先,在您的活动 php.ini 中注释掉。

;extension=php_xdebug-2.0.4-5.2.8.dll

然后将其添加到活动 php.ini 的底部(相应地调整目录和 xdebug 文件名。)

[XDebug]
; Only Zend OR (!) XDebug
zend_extension_ts="C:/Program Files (x86)/wamp/bin/php/php5.2.9-2/ext/php_xdebug-2.0.4-5.2.8.dll"
xdebug.remote_enable=on
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
xdebug.profiler_output_dir="C:/Program Files (x86)/wamp/tmp"
于 2009-05-20T03:52:41.277 回答
1

Vista上的XDebug存在线程安全问题,我在使用IIS7和PHP作为ISAPI模块时遇到了同样的问题,如果加载了xdebug.dll,服务器会随机崩溃,然后我找到了一篇描述PHP+XDebug的文章(on Vista) 应该在单线程模式下运行。

我让它按照以下方式工作:

一个非线程安全的 PHP 版本,一个用于您的 PHP 版本的非线程安全 xdebug.dll,在 php.ini 中它应该被加载为 zend_extension="C:/FullPathToXdebugDll"(没有 "_ts"!),运行 php在 CGI(或更好的 FastCGI)模式下。(CGI/FastCGI 强制它是单线程的)。

这里是文章的链接: http ://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/

现在我正在寻找一种可能性,可以用 Xampp 或 InstantRails(或类似的东西)在我的笔记本上运行它(Vista Home Premium 没有 IIS),但我不知道如何强制 apache 在单线程模式,有人知道怎么做吗?

于 2009-06-17T09:18:55.097 回答
1

http://community.activestate.com/forum-topic/apache-crashes#comment-9812 Obviousliy buggy apache 模块的解决方案- 将 php 作为 CGI 运行。

于 2011-02-06T15:40:25.980 回答
1

我在 Windows 7 Ultimate 6.1.7600 上使用 Xampp 1.7.3 (php 5.3.1) 让它工作。按照作者对取消注释行的帖子编辑:zend_extension = C:\xampp\php\ext\php_xdebug.dll 在 xampp\php\php.ini 中,我设法让 apache http 服务器停止崩溃!

原来 Xampp 带有它自己的 xdebug 版本,我什至从一开始就不需要下载任何东西。您只需要取消注释上述行并在 php.ini 的 [xdebug] 部分中启用您想要的 xdebug 的其他功能。

我安装的 Xampp 附带的 xdebug 版本是 2.0.6-dev。希望这可以帮助!

编辑:忘了提到我正在运行 Windows 7 的 x64 风格:P

于 2010-12-29T22:09:34.550 回答
0

感谢您的评论,我使用此版本的 php_xdebug-2.0.2-5.2.5.dll 解决了问题,在 Windows Vista Business 64bit 上为我工作...... php.ini 配置相同,只是为了使用这个 xdebug dll 版本.......谢谢

爱马仕

于 2009-03-03T19:08:54.383 回答
0

我正在使用 Vista x86 SP1、XAMPP 1.6.8 和 php_xdebug-2.0.2-5.2.5.dll 插件。最近我注意到当我通过右键单击运行 xampp-control.exe => 以管理员身份运行时,所有崩溃都消失了 :) 有时会发生但非常罕见,我可以在 Eclipse PDT 中使用调试器。查看我的解决方案

于 2009-04-03T23:13:21.757 回答
0

根据此问题,我建议您禁用以下两行php.ini

;xdebug.profiler_enable=1
;xdebug.profiler_output_dir="(temp_dir)"

为我工作

于 2009-03-20T11:48:57.090 回答
0

我刚刚使用 zip 文件安装了 xampp 1.7.4。如果您使用 .exe 文件,除了 1.7.4 存在错误外,它可以很好地与软件包随附的 xdebug 文件配合使用。

我还使用了Joomla 教程来设置调试。现在一切似乎都运行良好。

于 2011-03-12T12:39:20.987 回答