eclipse xdebug会话永远不会完成
我正在尝试使用eclipse(3.5)/ php(在xampp windows 7上)来使用xdebug。 我已经validationxdebug是在PHP中启用 – 我有花哨的输出,我的phpinfo显示所有的xdebug的东西。 我有远程debugging,并在我的eclipse机器上inputlan ip地址。
当我告诉eclipsedebugging时,它会启动浏览器并传递debuggingURL参数。 这看起来不错。
然而,在eclipsedebugging的angular度来看,它显示“启动myproject”57%“等待xdebug会话”。 它永远坐在那里。
我已closures两台机器上的Windows防火墙。
我试着转动隐式刷新。
有任何想法吗?
我也有这个问题,我错过了php.ini
文件中的这一行:
xdebug.remote_enable = On
确保你在php.ini
中用绝对path定义了zend_extention:
例如: zend_extension=D:\SANDBOX\server\php\php_xdebug-2.1.0-5.3-vc6.dll
我在Windows上debugging本地项目。 到目前为止,我并不需要xdebug.remote_enable = On
。
build议如果Xdebug会话没有启动(挂起57%),请确保:
-
zend_extention
指令是用绝对path设置的,debugging加载后,使用phpinfo()
来检查 - 防火墙不会阻止默认的9000端口或Eclipse。
- 另一个应用程序不使用端口(从命令行执行:
netstat -an |find /i "listening"
)
如果您需要在php.ini
设置不同的端口,请使用以下命令:
xdebug.remote_enable = on xdebug.remote_port = XXXX
并更正Eclipse中的Xdebug设置:
我有同样的问题,我通过将端口更改为XDebug(现在使用端口9001)来解决它。
这里是我的php.ini内容:
zend_extension ="C:\...\EasyPHP-5.3.3\php\ext\php_xdebug-2.dll" xdebug.remote_enable=1 xdebug.remote_host=localhost xdebug.remote_port=9001 xdebug.remote_handler=dbgp xdebug.profiler_enable=0 xdebug.remote_mode=req xdebug.remote_autostart=0
另外检查Apache日志文件,并确保您没有以下警告消息:
PHP警告:Xdebug必须在第0行中作为Zend扩展在Unknown中加载
警告 :Xdebug必须在第0行中作为Zend扩展名在Unknown中加载
如果你这样做,打开php.ini文件,并用“;” 该extension=php_xdebug-2.dll
行:
;extension=php_xmlrpc.dll extension=php_xsl.dll **;extension=php_xdebug-2.dll** ;/PHPExt
经过3个小时的争斗,在论坛上尝试了所有的解决scheme后,我发现简单的技巧是在php.ini的 zend_extension中指定Xdebug dll的path时去掉引号。 我在Windows Vista上使用XAMPP(PHP 5.3.6 + Apache 2.2)+ Eclipse Indigo + PDT + Xdebug 2.1.2。
这里是为我工作的确切configuration –
zend_extension=C:\xampp\php\ext\php_xdebug-2.1.2-5.3-vc6.dll #Note that the path above is not in quotes xdebug.remote_enable=true xdebug.remote_host=localhost xdebug.remote_port=9001 xdebug.remote_handler=dbgp xdebug.profiler_enable=1 xdebug.profiler_output_dir=C:\xampp\tmp
我已经使用了端口9001,这样它就不会与9000冲突,以防其他程序已经使用过。 确保它与Eclipse> Preferences> PHP> Debug> Xdebug中的端口匹配。 另外,编辑php.ini后重新启动apache。
一旦我把这个添加到php.ini中,一切都像冰淇淋一样工作。
我和Zend Studio有同样的问题。 我注意到,xdebug会话没有正常启动。 我把这个string传递给了url一次,从那以后就工作了。
http://localhost/myalias/?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13750956767461
我确定这是在IDE中的某个地方configuration的问题。
我意识到TCP端口正在使用,这就是它悬挂的原因。 我在php.ini和eclipse设置中改变了端口。
检查Eclipse的Web浏览器设置是否正确。
窗口/首选项/常规/ Web浏览器/外部Web浏览器/编辑设置
在我的情况下,外部Web浏览器二进制文件的path不正确。 它说“/ usr / bin / mozilla”而不是“/ usr / bin / firefox”。 不知道这个设置是怎么产生的,但是改了之后Firefox浏览器窗口终于出现了。
我看着Apache日志,并有许多行文件未find错误。
运行 – >debuggingconfiguration – > PHP网页 – > Your_configuration
我取消选中auto generate
并设置文件名index.php
。
看来,如果有任何错误,防止月食的正常运作导致这个“等待会议”
我有同样的问题。 我的configuration和你的一样,除了在php.ini文件中有xdebug.remote_enable = On
,还增加了以下内容:
xdebug.remote_connect_back=1
这使多主机远程debugging成为可能,您可以定义主机IP。
xdebug.remote_host=IP_ADDRESS
是的,检查networking/端口统计。 在我的情况下,我在Mac上使用vmware fusion,并且进程vmware-natd占用了cpu(在我假设的开放端口上阻塞),这一点我没有注意到。 php.ini是完全正常的,不得不运行这个让它再次工作:
sudo "/Library/Application Support/VMware Fusion/boot.sh" --restart
所以,请先检查您的php.ini(或xdebug.ini)文件。 如果这个讨论看起来不错,那么检查一下你没有networking问题。
我不知道这对你意味着什么,或不! 但是,你打了一个PHP文件 (anything.php)与正确的debugging参数,如XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=12882809194391
。
人们常常会犯错误,用debugging参数来触发一个HTML文件,这会导致Eclipse在xdebug会话中挂起
我有一个类似的问题,事实certificate,我使用的是错误的DLL。 希望在未来帮助别人。
我有同样的症状。 但是,我的问题是,我设置xdebug.remote_host = ""
我这样做,因为我使用Apache虚拟主机,以消除localhost
主机的需要。 但是,我已经改回到xdebug.remote_host = "localhost"
,然后更改我的apache / etc / hpppd-vhosts.conf让本地主机指向我的根目录c:\ web。
对我而言,这些症状是由Windows防火墙(Win7 Pro)造成的。 我需要明确允许eclipse通过防火墙。 我通过“控制面板\所有控制面板项目\ Windows防火墙\允许的程序”中的对话框执行此操作。
它可能对每个人都没有用处,但是当试图debugging远程主机的时候,请记住DSL路由器! (或任何路由器)我花了几个小时试图find一个解决scheme,当我注意到我所要做的就是激活我的Linksys上的端口转发(端口9000),一切工作就像一个魅力:)
- 上面的input是有用的。 我检查了phpInfo()中的xdebug参数值,发现尽pipe我的设置为1或On,但auto_trace和remote_enable已closures。 所以我做到了这一点。 然后远程工作! 谢谢。
- 请注意,现在您可以通过configuration各种debuggingconfiguration或/和在Eclipse之外启动此类configuration的应用程序,从而在Eclipse中启动远程debugging会话,您将在Eclipse上得到一个问题来接受或不接受debugging会话。 所以如果你使用的是不同于eclipse的机器,你可能会发现对你的应用程序的调用没有任何理由。 实际上在Eclipse会话的任何地方都会有一个yes – no对话框
这个线程帮助我解决了在OSX上使用Eclipse的MAMP问题。 从1.x版本升级到MAMP 2.1.1后,我无法让xdebug在eclipse中工作。 这是挂在57%的水平。
phpinfo显示xdebug扩展加载正常,并且PHP或Apache日志中没有错误。
我只想在本地debugging,但问题的原因是远程debugging没有启用。 在MAMP的PHP.ini模板中添加xdebug.remote_enable = true并重新启动MAMP解决了这个问题。
在我的情况下,CLI应用程序工作正常,但它是在57%的卡住的Web应用程序。
它经过了2次更改:
- 将服务器debugging器作为XDebug
- 自动生成url为true。
如果Netweaver/Eclipse
无法连接到XDebug
,您可能希望检查Apache
日志中是否出现类似如下内容: Cannot load Xdebug - it was built with configuration API220090626,TS,VC6, whereas running engine is API220090626,TS,VC9 [Fri Jun 01 18:38:05 2012] [notice] Child 3404: Child process is running
为了解决这个问题,从XDebug
网站上select正确版本的XDebug
二进制文件(尝试几个组合,直到你得到它的工作)
在eclipse设置之前,请检查以下内容在phpinfo函数中是否可见。
本程序使用Zend脚本语言引擎:Zend Engine v2.4.0,版权所有(c)1998-2013 Zend Technologies与Xdebug v2.2.3,版权所有(c)2002-2013,Derick Rethans
我也遇到了同样的问题。 我再次检查所有的设置在phpinfo()
的输出和一切都很好。
允许通过防火墙的Java(TM)Platform SE二进制文件具有诀窍。
看看这个问题的命令,它们对debugging非常有用!
我试过这个post的每一个可能的解决scheme,让xdebug工作在Apache(http端口8000)上运行的网站无济于事。 然后我不小心注意到,xdebug正在另一个我在80端口上运行的站点上工作。只要我把另一个站点改为80端口,它终于允许我debugging它。
我想知道是否有一个设置,可以指示Apache允许其他端口上的xdebug不只是80.我有不止一个站点在Apache中运行,并希望debugging每个站点,而不必重新configuration端口。 任何人有过这个问题吗? 或知道如何解决它?
如果您的configuration正常,只需删除文件:YOUR_WORKSPACE / .metadata / .plugins / org.eclipse.core.resources / .root / .markers
使用Uniserver Zero XIII 13.2.0(需要MS VC12可再发行版安装)和Eclipse Neon Release Candidate 3(4.6.ORC3)也有相同的问题。 我们的网站使用phalcon,当我们发现phalcon.dll和php7.0的问题,我们退回到php5.6。 我们validation了上面的xdebug设置,添加了zend_extension = $(US_ROOTF)/php56/extensions/php_xdebug.dll–无法连接,没有中断点。
在Eclipse对话框项目顶部发现了一个警告 属性| PHP | debugging| configuration工作区设置… | PHP可执行文件| PHP56(工作区默认)| 编辑| debugging器| “XDebug扩展没有安装,请访问http://xdebug.org …”。 这使我们怀疑Uniserver 13.2.0 php56中的php_xdebug.dll(2.5.0)的版本。 我下载了php_xdebug-2.4.1-vc11.dll,把它放在/ php56 / extensions和PRESTO中! Eclipse PHPdebugging器的作品!
对我而言,将其他人build议的[xdebug]configuration添加到保存在以下pathC:\ wamp64 \ bin \ apache \ apache2.4.23 \ bin中的php.ini文件中。 从本质上讲,它是一个符号链接,点/链接到phpForApache.ini文件下你的各自的PHP版本文件夹,用wamp64如php5.6.25安装。
简而言之,添加以下行phpForApache.ini来帮助我 –
zend_extension = c:\wamp64\bin\php\php5.6.25\ext\php_xdebug-2.5.1-5.6-vc11-x86_64.dll xdebug.remote_enable=On xdebug.remote_host="localhost" xdebug.remote_port=9000 xdebug.remote_handler="dbgp"
希望这可以帮助
这里是另一个博客,提到如何通过命令行来validationXdebug是否正确安装http://allcodeverything.blogspot.com/2012/07/code-debugging-with-xdebug-and-eclipse.html
它提到了这一点如果你想弄清楚一切是否正常,那么在你有了CLI之后(命令行解释器,基本上不在Apache或浏览器之外,只是纯粹的PHP)在浏览器中键入以下内容:“http://localhost/dbgtest.php?XDEBUG_SESSION_START = ceable”
<?php $address = "localhost"; $xdebug_port = 9000; $sock = socket_create(AF_INET, SOCK_STREAM, 0); socket_bind($sock, $address, $xdebug_port) or die('Unable to bind'); socket_listen($sock); $debug_client = socket_accept($sock); echo "connection established: $debug_client"; socket_close($debug_client); socket_close($sock); ?>
命令行窗口应该打印“连接build立:资源ID#5”。