Remote Xdebug mit VirtualBox
Ich versuche, remote-debugging zu arbeiten. Das PHP läuft auf einer VM und ich bin versucht zu Debuggen, die von NetBeans auf dem host-Rechner.
Ich habe die Anweisungen befolgt hier, weitergeleiteten port 9000 in der Windows 7 firewall und in der VirtualBox die Netzwerkeinstellungen und einrichten pfadzuordnungen in NetBeans. Meine xdebug-Einstellungen wie folgt Aussehen:
xdebug.remote_enable = On
xdebug.remote_connect_back = On
xdebug.idekey = "netbeans-xdebug"
xdebug.remote_log = /tmp/xdebug.log
Wenn ich laden Sie die URL, die ich Debuggen will (mit dem richtigen idekey) es meldet Folgendes:
I: Checking remote connect back address.
I: Remote address found, connecting to 192.168.0.1:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1"
xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
fileuri="file:///home/dev/web/projects/project.com.vm/httpdocs/index.php"
language="PHP" protocol_version="1.0"
appid="1380"
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>
Jedoch, NetBeans, bleibt eine Verbindung wartet. Ich habe es bis zum Anschlag an der ersten Linie, neben der ein Haltepunkt gesetzt werden. Die log-Datei wird auch das "Verbunden-client" Nachricht, auch wenn NetBeans ist nicht zu hören.
Irgendeine Idee, was ich möglicherweise fehlen?
Dank.
- So habe ich anderen Weg gegangen und haben begonnen, debugging lokal auf der VM mit VIM (nach diese Anleitung). Würde schätzen noch irgendwelche Hinweise, warum ich nicht bekommen konnte es aus der Ferne arbeiten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was für mich gearbeitet wurde mit dem folgenden aus meiner host:
Beachten Sie die Verwendung der -R-flag statt der L. ich hatte Probleme mit der port-Weiterleitung, um die Dinge zu arbeiten, während die ssh-tunnel einwandfrei. Hinweis: Sie könnten auch tun Sie dies, indem Sie den ssh-Befehl von innerhalb der VM und die Verbindung zu dem host mit dem-L-flag.
Da landete ich auf dieser Frage, während der Arbeit mit Vagrant, das ist der Befehl, den ich persönlich verwendet, verwenden Sie das Passwort "vagrant", wenn Sie dazu aufgefordert werden:
Meine Lösung für dieses Problem war Folgendes:
1) Aktivieren Sie die port-Weiterleitung in der Netzwerkkonfiguration (mit NAT-adapter)
Ich benutzte einfach den port 9000 und die IP-Adressen der host-und dem Gast. Protokoll ist TCP
2) Konfiguriert meine xdebug-Einstellungen:
In meinem Fall war es wichtig, in der xdebug.remote_host = "Die permanente host-IP"
Dann alles funktionierte perfekt.
Hoffe, dies hilft jemand da draußen.
Fügte ich 4 Optionen für die Verwendung von Xdebug in meine Projekte in einer virtuellen Maschine:
So lange, wie Sie Ihre debugger ist hören, es brechen sollte, die auf einen Haltepunkt.
Wenn Sie diese in Ihrem log-Datei:
Das bedeutet, dass Xdebug hat erfolgreich eine Verbindung zu der IDE.
Die IDE (netbeans), dann einfach beendet die Verbindung, ohne auch nur den Versuch zu senden Informationen. Dies geschieht, wenn Sie nicht wissen, was zu tun mit dem Dateinamen (
file:///home/dev/web/projects/project.com.vm/httpdocs/index.php
) in deinem Beispiel. Der Grund dafür ist, dass Sie nicht die richtige Pfad-Zuordnung-set-up in Ihre IDE.Der virtuellen Maschine muss in der Lage zu sprechen zurück zu dem host-Rechner und zu machen, dass passieren Sie brauchen, um vorwärts 9000, dies zu tun. Dieser Schritt ist nicht beschrieben, in einigen setups, weil es im hintergrund geschieht.
Um dies zu tun, geben Sie den Befehl ssh -L 9000:localhost:9000 Benutzername@youVirtualMachine.
Um dies zu vereinfachen, habe ich den Namen der virtuellen Maschine in der /etc/hosts und in meiner ~/ssh/config Datei.