序言等待连接(于NetBeans的XDebug)MAMP OS X
后几个小时,我一直无法得到的NetBeans连接到Xdebug的。几个月前,从老版本的MAMP升级到MAMP PRO后,调试工作完美无缺。一周前它开始变得疯狂。它似乎会连接,但不会停在断点处。重新启动NetBeans(v7.0.1)和apache有时可以在短时间内运行。
我真的需要它,所以我安装了最新版本的MAMP PRO(2.1.2)。现在我永远得到等待连接消息。
测试我做过
虽然正在等待连接的消息是没有与移动吧,我看,看它是否在听。这是...
# lsof -i -n -P |grep 9001
java 6496 tim 230u IPv6 0xffffff80239d8190 0t0 TCP *:9001 (LISTEN)
在NetBeans中的PHP配置我已经解释设置为: /Applications/MAMP/bin/php/php5.4.10/bin/php
执行以下操作:
# /Applications/MAMP/bin/php/php5.4.10/bin/php -i | grep xdebug
告诉我,Xdebug的运行一样的phpinfo()
我有(多次)证实了我的端口号到处都一样。我已尝试上xdebug.log然后发起从所述浏览器会话,而无需启动在NetBeans调试会话端口9000和9001。
做一个尾生产:
I: Connecting to configured address/port: localhost:9001.
E: Could not connect to client. :-(
随着等待连接消息和开始从浏览器会话,我得到这个在日志中:
: Connecting to configured address/port: localhost:9001.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///Users/tim/MAMPSites/facts.tvd.us/htdocs/sendfile/tim.php" language="PHP" protocol_version="1.0" appid="7279" idekey="netbeans-xdebug"><engine version="2.2.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2012 by Derick Rethans]]></copyright></init>
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
我的php.ini文件有以下几点:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.3.20/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9001
xdebug.idekey="netbeans-xdebug"
更新
我只注意到上述lsof命令显示的NetBeans监听IPV6。强制Java(NetBeans)使用ipV4并没有帮助。
launchctl setenv JAVA_TOOL_OPTIONS -Djava.net.preferIPv4Stack=true
我找到了一个提示测试确认xdebug工作正常的文章。创建一个PHP文件:在命令行
<?php
$address = '127.0.0.1';
$port = 9000;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);
?>
运行它,在你的浏览器在网址的结尾以下加载任何页面:
?XDEBUG_SESSION_START=nb
如果输出类似“建立连接:资源ID#5“,xdebug工作正常。为此,我重新安装了Java和NetBeans。我告诉NetBeans不要导入我现有的首选项...仍然没有连接。
UPDATE2
我安装了phpStorm IDE的Mac。我足够了解它,让我们现有的MAMP和xdebug安装程序运行调试器。我认为这证实了NetBeans的问题。
在这一点上,得到这个工作似乎是不可能的。 :(
我的最终解决这个问题......我已经完全切换到phpStorm。使用它几天后,它似乎是一个更好的IDE(在我看来)。调试只是“有效”。 – 2013-03-04 03:10:34
这里完全一样!我试图用netbeans安装xdebug 2周,然后我放弃并切换到PHPStorm(在Windows7 btw上)。完美开箱即用。有时候,付出好的软件是值得的。 – Sliq 2013-07-18 19:38:42