Distance Xdebug avec VirtualBox
Je vais essayer d'obtenir le débogage à distance pour travailler. Le PHP est exécuté sur une machine virtuelle et je suis en train de débogage à partir de NetBeans sur la machine hôte.
J'ai suivi les instructions ici, transmis sur le port 9000 dans le pare-feu Windows 7 et dans le réseau VirtualBox paramètres et configurer les mappages de chemin d'accès dans NetBeans. Mon xdebug paramètres ressembler à ceci:
xdebug.remote_enable = On
xdebug.remote_connect_back = On
xdebug.idekey = "netbeans-xdebug"
xdebug.remote_log = /tmp/xdebug.log
Lorsque je charge l'URL que je veux debug (en utilisant la bonne idekey) il enregistre les suivantes:
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>
Cependant, NetBeans reste en attente d'une connexion. Je l'ai mis en place pour s'arrêter à la première ligne, en plus d'avoir un point d'arrêt défini. Le fichier journal d'inclure les "Connectés" message même quand NetBeans n'est pas à l'écoute.
Une idée de ce que je pourrais être absent?
Grâce.
OriginalL'auteur Zach | 2012-08-20
Vous devez vous connecter pour publier un commentaire.
Ce qui a fonctionné pour moi a été exécutant la commande suivante à partir de mon hôte:
Notez l'utilisation de l'option-R drapeau à la place de L. j'ai eu de la difficulté à utiliser la redirection de port pour obtenir des choses de travail, tandis que le tunnel ssh a parfaitement fonctionné. Remarque vous pouvez également le faire en exécutant la commande ssh à partir de l'intérieur de la VM et de la connexion à l'hôte avec l'option-L.
Depuis que j'ai fini sur cette question, tout en travaillant avec Vagrant, c'est la commande j'ai personnellement utilisé, utilisez le mot de passe "vagabondage" lorsque vous y êtes invité:
OriginalL'auteur adamfeldman
Ma solution à ce problème était le suivant:
1) Activer la redirection de port dans la configuration du réseau (à l'aide de la NAT adaptateur)
J'ai simplement utilisé le port 9000 et les adresses IP de l'hôte et l'invité. Le protocole est TCP
2) de la configuration de mon xdebug paramètres:
Dans mon cas, il était important de fixer des xdebug.remote_host = "La permanente IP de l'hôte"
Puis tout s'est parfaitement déroulé.
Espère que cela aide quelqu'un là-bas.
Je suis à l'aide de VirtualBox (ubuntu) sur un Mac. J'ai eu à configurer mon xdebug.remote_host à l'adresse IP du Mac (hôte) de l'ordinateur. La seule chose ennuyeuse, c'est que mon adresse IP change et j'ai donc de maintenir le réglage que je me déplace autour du globe.
OriginalL'auteur Sebastian
J'ai ajouté 4 options à utiliser Xdebug dans mes projets dans une machine virtuelle:
Aussi longtemps que votre débogueur est à l'écoute, il devrait casser sur un point d'arrêt.
OriginalL'auteur Gordon Forsythe
La machine virtuelle doit être en mesure de parler de retour à la machine hôte et de faire que cela se produise, vous devez avant 9000 pour ce faire. Cette étape n'est pas décrite dans certaines configurations, parce qu'il se passe en arrière-plan.
Pour ce faire, exécutez la commande ssh-L 9000:localhost:9000 nomutilisateur@youVirtualMachine.
Pour simplifier, j'ai le nom de la machine virtuelle dans /etc/hosts et dans mon ~/ssh/config fichier.
OriginalL'auteur Lloyd Moore
Si vous avez ceci dans votre fichier de log:
Qui signifie que Xdebug a réussi à faire une connexion à l'IDE.
L'IDE (netbeans), il suffit d'une coupure de la connexion, sans même tenter de nous envoyer des informations. Ce qui se passe s'il ne sait pas quoi faire avec le fichier (
file:///home/dev/web/projects/project.com.vm/httpdocs/index.php
) dans votre exemple. La raison pour cela est que vous n'avez pas le bon chemin de la cartographie mise en place dans votre IDE.OriginalL'auteur Derick