我在三台独立的计算机上安装了Windows XAMPP软件包,其中两台运行Windows Vista 32位(1 Ultimate / 1 Home Premium),另外一台运行Windows Vista 64 Home Premium。
在php.ini中启用xdebug并重新启动apache后,查看默认的XAMPP本地主机索引会导致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
我试过谷歌search这个问题,但没有find任何解决scheme,只有类似的错误报告。
编辑:我启用了php_xdebug.dll的延长线,似乎已经停止了迄今为止的崩溃。
我使用xDebug在我的Win7机器上运行Windows版本1.7.1的XAMPP,它工作的很好。
检查您是否安装了SP1,然后按照以下说明操作 :
找到包含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"
我在网上寻找这个问题,并尝试了许多解决方案,没有一个工作。 我尝试了这个配置,只是最后一个测试,并为我工作,在Eclipse中更改Windows / Preferences / PHP / Debug,并选择Xdebug作为PHP调试器。
通过其他一些论坛,我发现了一个可能的提示 – 虽然xampp上的apache通常使用位于apache / bin目录中的php.ini,但是某些模块不会。 所以我玩弄了那个目录下的php.ini文件(只是把它从危险的方式移动到目前为止,比如重命名/删除它)。 至少可以试试看。
我找到了解决这个问题的方法。 你可以在这里找到它: http : //wiki.mpsoftware.dk/index.php?title=Tutorial_on_how_to_configure_Xdebug_to_work_with_phpDesigner_2008
问题是XDebug与Zend优化器不兼容,所以你需要评论[Zend]部分下的所有部分。
确保你有最新版本的xdebug? 我有一个老版本的xampp相同的问题,下载最新的.dll的xdebug,在php.ini中更改映射,并工作了一种享受。
花了我几个小时,虽然.. grr
PHP通常只能有一个引擎级别的扩展。 我正在使用xdebug在我的机器上使用最新的xampp lite软件包。
使用grep(gnu32 package for 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 \系统或其他地方在路径中优先,那么你期望它是XAMMP \ APACHE \斌
这里有一个Windows兼容性列表。 似乎xdebug不支持Vista …
我也有这个问题。 将您的XAMPP安装降级到以前的版本,并修复了这个错误。 我不确定到底是什么原因造成的,但这是目前唯一已知的解决方案。 你可以在这里得到第二个最新的版本。
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"
穿过这个做谷歌搜索为什么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"
在Vista上有XDebug的线程安全问题,我使用IIS7作为ISAPI模块使用IIS7也是一样的问题,服务器在xdebug.dll被加载时随机崩溃,然后我找到一篇描述PHP + XDebug(on Vista)应该以单线程模式运行。
我按照以下方式工作:
一个非线程安全的PHP版本,一个非线程安全的xdebug.dll,用于PHP版本,在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家庭高级版没有IIS),但我不知道如何强制Apache运行在一个单线程模式,有人知道如何做到这一点?
欧根适合我。
去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"
这可能对某人有帮助。 在使用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”
我有同样的问题。 这是由最新版本的xdebug(2.0.6)解决的。 这是在开发模式stil,但对我来说,它比以前的版本更稳定:)
它是XAMPP 1.7.3beta的一部分http://www.apachefriends.org/en/xampp-beta.html
启用xdebug只是取消注释xampp / php / php.ini中的一行
HTH
安装新版本的XAMPP
我在Windows 7旗舰版6.1.7600上使用了Xampp 1.7.3(php 5.3.1)。 在作者的帖子编辑un-commenting行: zend_extension = C:\xampp\php\ext\php_xdebug.dll
在xampp \ php \ php.ini,我设法得到apache http服务器停止崩溃!
原来,Xamppp自带的xdebug版本,我甚至从来没有需要下载任何东西。 您只需要取消注释前面提到的行,并在php.ini的[xdebug]部分启用xdebug的其他功能。
我安装的Xampp附带的xdebug版本是2.0.6-dev。 希望这可以帮助!
编辑:忘了提及,我正在运行Windows 7的x64风格:P
解决方案在http://community.activestate.com/forum-topic/apache-crashes#comment-9812明显的马车apache模块 – 运行PHP为CGI。
可能是我的expirience将是有益的:我使用XAMPP 1.7.4,apache总是崩溃时,试图从eclipse与xdebug 2.1.0调试PHP页…我用xdebug 2.0.5替换xdebug 2.1.0,现在一切正常
我有一个解决方案的工作Vista的使用上述的组合,所以如果这有助于任何人在这里去…
Eclipse Europa – 版本:3.3.2 Build 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
那就对了 ! 注释掉上面的行。
希望这可以帮助
感谢您的评论,我解决了这个问题,使用这个版本的php_xdebug-2.0.2-5.2.5.dll,在Windows Vista Business 64位上工作…… php.ini配置是相同的,只是为了使用这个xdebug DLL版本…….谢谢
爱马仕
根据这个问题,我建议你在你的php.ini
禁用这两行:
;xdebug.profiler_enable=1 ;xdebug.profiler_output_dir="(temp_dir)"
为我工作
我正在使用Vista x86 SP1,XAMPP 1.6.8和php_xdebug-2.0.2-5.2.5.dll插件。 最近我注意到,当我通过右键单击运行xampp-control.exe =>以管理员身份运行时,所有崩溃消失:)有时会发生,但非常罕见,我可以在Eclipse PDT中使用调试器。 看看我的溶剂
我只是使用zip文件安装xampp 1.7.4。 如果您使用的是.exe文件,那么1.7.4就有一个bug,但它可以很好地与软件包提供的xdebug文件配合使用。
我也使用Joomla教程来设置调试。 现在所有人似乎都工作得很好。