我已经在三台独立的计算机上安装了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
我已经尝试使用谷歌搜索这个问题,但没有找到任何解决方案,只有类似错误的报告。
编辑:我启用了php_xdebug.dll的扩展行,这似乎已经停止了崩溃到目前为止。
答案 0 :(得分:6)
我正在使用xDebug在我的Win7机器上运行XAMPP for Windows V1.7.1,它运行完美。
检查您是否安装了SP1,然后按照these notes:
进行操作找到包含implicit_flush
的行并将其设置如下:
implicit_flush = On
找到名为[Zend]
的部分,并在每行的开头加上一个分号(“;”)注释掉所有行。
找到该行:zend_extension = "c:\xampp\php\ext\php_xdebug.dll"
并取消注释。
找到[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"
答案 1 :(得分:2)
我在互联网上寻找这个问题并尝试了许多解决方案,但没有一个能够解决问题。 我尝试了这个配置,只是最后一个测试并且为我工作,在Windows / Preferences / PHP / Debug下的Eclipse更改中选择Xdebug作为PHP调试器。
答案 2 :(得分: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"
答案 3 :(得分:1)
通过其他论坛,我发现了一个可能的提示 - 虽然xampp上的apache通常使用apache / bin目录下的php.ini,但有些模块却没有。所以我玩弄了那个目录中的php.ini(到目前为止,简单地将它移出了对我有用的危害,就像重命名/删除它一样)。可能至少要尝试一下。
答案 4 :(得分:1)
可能是我的经验有用: 我使用XAMPP 1.7.4,当尝试使用xdebug 2.1.0从eclipse调试php页面时,apache总是崩溃... 我用xdebug 2.0.5替换了xdebug 2.1.0,现在一切顺利
答案 5 :(得分:1)
http://community.activestate.com/forum-topic/apache-crashes#comment-9812处的解决方案 明显错误的apache模块 - 运行php作为CGI。
答案 6 :(得分: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
答案 7 :(得分:1)
安装新版XAMPP
答案 8 :(得分:1)
我遇到了同样的问题。最新版本的xdebug(2.0.6)解决了这个问题。它是开发模式,但对我来说它比以前的版本更稳定:)
它是XAMPP 1.7.3beta http://www.apachefriends.org/en/xampp-beta.html
的一部分启用xdebug只是在xampp / php / php.ini中取消注释一行
HTH
答案 9 :(得分: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 \分机\ php_xdebug.dll”
答案 10 :(得分:1)
欧根适合我。
请在http://xdebug.org/download.php下载非线程安全dll 即 5.2 VC6非线程安全(32位)
将其保存到\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"
答案 11 :(得分:1)
我按照以下方式开始工作:
一个非线程安全的PHP版本,一个用于PHP版本的非线程安全的xdebug.dll,在php.ini中它将被加载为zend_extension =“C:/ FullPathToXdebugDll”(没有“_ts”!) ,在CGI(或更好的FastCGI)模式下运行php。 (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在单线程模式下运行,有人知道该怎么做吗?
答案 12 :(得分:1)
确保您拥有最新版本的xdebug?我有一个旧版xampp的相同问题,下载了最新的.dll xdebug,更改了php.ini中的映射,并且做了一个款待。
我花了好几个小时才得到...... grr
答案 13 :(得分:1)
我找到了解决这个问题的方法。您可以在此处找到它:http://wiki.mpsoftware.dk/index.php?title=Tutorial_on_how_to_configure_Xdebug_to_work_with_phpDesigner_2008
问题是XDebug与Zend优化器不兼容,因此您需要对[Zend]部分下的所有部分进行注释。
答案 14 :(得分:1)
我使用上述组合为Vista工作提供了一个解决方案,所以如果这对任何人有帮助的话......
Eclipse Europa - 版本:3.3.2构建ID: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
没错!注释掉上述内容。
希望这有帮助
答案 15 :(得分: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"
答案 16 :(得分:1)
我也有这个问题。将您的XAMPP安装降级到以前的版本,并修复了该错误。我不确定究竟是什么导致它,但这是目前已知的唯一解决方案。您可以获得第二个最新版本here。
答案 17 :(得分:1)
有一个Windows兼容性列表available here。似乎Vista不支持xdebug ...
答案 18 :(得分:1)
PHP通常只能有一个引擎级扩展。我目前在我的机器上使用最新的xampp lite软件包和xdebug及其罚款。
使用grep(用于Windows的gnu32软件包)或其他一些文本过滤器,获取PHP文件中包含“extension”一词的每一行的列表,并确保您确切知道哪些软件包正用于您的wamp叠加。
接下来。 xdebug作为引擎扩展更好地工作,但是有几个人已经指出它也可以用作常规扩展。引擎和普通扩展之间的性能损失是分析不那么准确,编辑器 - >服务器调试不可靠,除了显式的xdebug_break()语句之外似乎不起作用。
最后几件事要尝试调用php -i并将其传递给文本文件。如果它在那里崩溃,那么它应该采取更激烈的措施。找到你的Windows机器上的所有php.ini文件,并逐个将它们重命名为php.disabled.ini或disabled_php.ini,然后再次尝试php -i调用。很可能你有一个潜藏在c:\ |等奇怪位置的php.ini文件c:\ windows \ | c:\ windows \ system或其他在路径中优先的地方然后你期望它是xammp \ apache \ bin
答案 19 :(得分:1)
答案 20 :(得分:0)
我正在使用Vista x86 SP1,XAMPP 1.6.8和php_xdebug-2.0.2-5.2.5.dll插件。 最近我注意到当我通过右键单击=>运行xampp-control.exe时以管理员身份运行,所有崩溃都消失了:) 有时会发生但非常罕见,我可以在Eclipse PDT中使用调试器。 看看我的溶液
答案 21 :(得分:0)
根据此Issue,我建议您在php.ini
中停用这两行:
;xdebug.profiler_enable=1
;xdebug.profiler_output_dir="(temp_dir)"
为我工作
答案 22 :(得分:0)
感谢您的评论,我使用此版本的php_xdebug-2.0.2-5.2.5.dll解决了这个问题,在Windows Vista Business 64bit上为我工作...... php.ini配置是一样的,只是为了使用这个xdebug dll版本.......谢谢
爱马仕
答案 23 :(得分:0)
我刚刚使用zip文件安装了xampp 1.7.4。如果你使用的是.exe文件,除了1.7.4有bug之外,它与包中附带的xdebug文件很好地配合。
我还使用Joomla tutorial来设置调试。 现在一切似乎都运转良好。