为什么每次我尝试安装XAMPP时,xdebug都会导致Apache崩溃?

10

我已经在三台不同的计算机上安装了Windows XAMPP包,其中2台运行Windows Vista 32位(1个终极版/1个家庭高级版),另外1台运行Windows Vista 64家庭高级版。

在php.ini中启用xdebug并重新启动apache后,查看默认的XAMPP本地主页会导致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

我已经尝试通过Google解决这个问题,但没有找到任何解决方案,只有类似错误的报告。

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


Vista + 最新的 XAMPP + 最新的 xdebug.dll 运行良好! - markus
24个回答

6

我在我的Win7机器上运行的是XAMPP for Windows Version 1.7.1与xDebug,它们能够完美地配合使用。

请检查您是否已经安装了SP1,并遵循这些说明

  1. Find the line containing implicit_flush and set it as follows:

    implicit_flush = On

  2. Find the section called [Zend] and comment out all of the lines by putting a semi-colon (";") at the start of each line.

  3. Find the line: zend_extension = "c:\xampp\php\ext\php_xdebug.dll" and uncomment it.

  4. Find the [XDebug] section and uncomment all of the lines (except for the first line which is an actual comment). For Windows, it should look like the example below:

    [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"
    

这个链接帮助我解决了Vista-Xdebug问题,之前我每天不得不重启几次Apache才能解决。 - markus
链接非常有帮助,谢谢!请在您的回答中添加关键值。 - Oleg

2
我在网络上寻找解决此问题的方法并尝试了许多解决方案,但都没有奏效。最终我尝试了这个配置,在Eclipse中更改Windows/Preferences/PHP/Debug下的设置,并选择Xdebug作为PHP调试器,这个方法对我有效。请注意保留HTML标签,不要加入任何解释。

1

安装新版本的XAMPP


1

我曾经遇到过同样的问题。最新版本的xdebug(2.0.6)解决了这个问题。虽然它仍处于开发模式,但对我来说比以前的版本更稳定 :)

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

启用xdebug只需要在xampp/php/php.ini中取消注释一行即可

希望能帮到你


xampp的最新版本包含一个较旧的xdebug版本。我去了xdebug网站,使用他们的安装工具获取了最新版本,现在不再出现崩溃问题。 - Amy Anuszewski

1
  1. 打开xampp\apache\bin文件夹中的php.ini文件(而不是xampp\php文件夹中的)。
  2. 找到extension=php_xdebug.dll行。
  3. 取消注释。

1
通常情况下,PHP只能有一个引擎级别的扩展。我目前在我的机器上使用最新的xampp lite套件,其中包含xdebug,并且工作正常。
使用grep(gnu32 Windows包)或其他文本过滤器,获取你的PHP文件中包含单词“extension”的每一行,并确保你知道哪些软件包被用于你的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。

1

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


同样的问题,对我来说php_xdebug-2.0.5-5.3-vc6.dll解决了。 - xverges
糟糕!事实证明,这并没有解决我的问题:它只是巧合地起作用了。从 http://localhost/joomla/hello.php 加载文件可以正常工作,但从 http://localhost/php101/hello.php 加载同一文件时会崩溃。joomlaphp101 都是指向同一目录的符号链接。 - xverges

1

1

我使用Xampp 1.7.3 (php 5.3.1)在Windows 7 Ultimate 6.1.7600上成功运行。按照作者的帖子编辑,取消注释xampp\php\php.ini中的zend_extension = C:\xampp\php\ext\php_xdebug.dll这一行,我成功避免了Apache HTTP服务器崩溃的问题!

原来Xampp自带xdebug版本,我根本不需要下载任何东西。您只需要取消注释前面提到的行,并在php.ini的[xdebug]部分启用其他xdebug功能即可。

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

编辑:忘记提到我正在运行的是Windows 7 x64版本 :P


1

这显然是一个不断变化的目标。最新的xampp似乎没有使用Zend优化器,但问题仍然存在许多人中,包括我自己。 - Jerph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接