序言等待連接(於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