Warten auf Verbindung (netbeans-xdebug) MAMP OS X
Präambel
Nach vielen Stunden konnte ich NetBeans nicht dazu bringen, eine Verbindung zu xdebug herzustellen. Vor einigen Monaten, nach dem Upgrade von einer alten Version von MAMP auf MAMP PRO, funktionierte das Debuggen einwandfrei. Vor einer Woche fing es an, Flocken zu bekommen. Es scheint eine Verbindung herzustellen, hört aber nicht an den Haltepunkten auf. Beim Neustart von NetBeans (v7.0.1) und Apache funktionierte es manchmal für kurze Zeit.
Ich musste es wirklich reparieren, also installierte ich die neueste Version von MAMP PRO (2.1.2). Jetzt erhalte ich die Nachricht Warten auf Verbindung für immer.
Tests habe ich gemacht
Während die Meldung "Warten auf Verbindung" mit der beweglichen Leiste angezeigt wird, überprüfe ich, ob sie zuhört. Es ist...
# lsof -i -n -P |grep 9001
java 6496 tim 230u IPv6 0xffffff80239d8190 0t0 TCP *:9001 (LISTEN)
In der NetBeans-PHP-Konfiguration habe ich den Interpreter auf /Applications/MAMP/bin/php/php5.4.10/bin/php eingestellt
Folgendes ausführen:
# /Applications/MAMP/bin/php/php5.4.10/bin/php -i | grep xdebug
sagt mir, dass xdebug genauso läuft wie phpinfo ()
Ich habe (oft) bestätigt, dass ich die Portnummer überall gleich habe. Ich habe Port 9000 und 9001 ausprobiert.
Einen Schwanz aufmachenxdebug.log Das Starten einer Sitzung über den Browser, ohne eine Debugsitzung in NetBeans zu starten, führt zu folgenden Ergebnissen:
I: Connecting to configured address/port: localhost:9001.
E: Could not connect to client. :-(
Mit der wartenden Verbindungsnachrichtund Wenn ich eine Sitzung über den Browser initiiere, wird Folgendes im Protokoll angezeigt:
: 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>
Meine php.ini-Datei hat Folgendes:
[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"
Aktualisieren
Ich habe gerade bemerkt, dass der Befehl lsof oben zeigt, wie NetBeans auf ipV6 lauscht. Es hilft nicht, Java (NetBeans) zur Verwendung von ipV4 zu zwingen.
launchctl setenv JAVA_TOOL_OPTIONS -Djava.net.preferIPv4Stack=true
Ich habe einen Beitrag gefunden, der einen Test vorschlug, um zu bestätigen, dass xdebug korrekt funktioniert. Erstellen Sie eine PHP-Datei:
<?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);
?>
Führen Sie es über die Befehlszeile aus und laden Sie eine beliebige Seite in Ihren Browser mit den folgenden Angaben am Ende der URL:
?XDEBUG_SESSION_START=nb
Wenn es so etwas wie "Verbindung hergestellt: Resource ID # 5" ausgibt, funktioniert xdebug korrekt. Damit habe ich Java und NetBeans neu installiert. Ich habe NetBeans angewiesen, meine vorhandenen Einstellungen NICHT zu importieren ... Immer noch keine Verbindung.
Update2
Ich habe die phpStorm IDE für Mac installiert. Ich habe genug darüber gelernt, um den Debugger mit meinem vorhandenen MAMP- und xdebug-Setup zum Laufen zu bringen. Ich denke, dies bestätigt das Problem mit NetBeans.
An diesem Punkt scheint es unmöglich zu sein, dies zum Laufen zu bringen. :(