为什么xdebug会在我试过的每个XAMPP安装上崩溃apache?

9 windows apache crash xampp xdebug

我已经在三台独立的计算机上安装了Windows XAMPP软件包,其中2台运行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崩溃报告器的完整报告:

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
Run Code Online (Sandbox Code Playgroud)

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

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

小智 6

我正在使用xDebug在我的Win7机器上运行XAMPP for Windows Version 1.7.1,它运行完美.

检查您是否安装了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"
    
    Run Code Online (Sandbox Code Playgroud)


小智 1

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