2017-02-15 2 views
0

J'ai une boîte vagabonde avec xdebug installée, fonctionnant sur OSX, mais j'ai du mal à obtenir le plugin Atom xdebug (php-debug) pour s'y connecter.Vagrant + Xdebug + Atom

J'ai collé les données phpinfo(); dans le site de validation xdebug et tout a été bon. Et vous pouvez voir tous les paramètres de xdebug.

J'ai mappé le port 9000 dans le fichier vagabond.

config.vm.network :forwarded_port, guest: 9000, host: 9000 

La boîte de errante a accueillir seul réseau qui expose 192.168.10.100 comme l'adresse IP du serveur.

Et j'ai essayé toutes sortes de différentes options de Xdebug, celles sur le site plugin ATOM suggère ..

xdebug.remote_enable=1 
xdebug.remote_host=127.0.0.1 
xdebug.remote_connect_back=1 
xdebug.remote_port=9000 
xdebug.remote_handler=dbgp 
xdebug.remote_mode=req 
xdebug.remote_autostart=true 

Mais c'est un peu déroutant que remote_connect_back=1 signifie xdebug ignorera le réglage remote_host - si Je ne sais pas pourquoi les deux sont là - ni travailler.

J'ai remis en marche apache/php après chaque fois que je change les options et vérifiez qu'ils sont chargés avec phpinfo();

Si je vérifie qui est à l'écoute sur le port 9000

COMMAND  PID USER FD TYPE    DEVICE SIZE/OFF NODE NAME 
Atom\x20H 10656 Matt 28u IPv6 0x321cb0a96ba5b593  0t0 TCP *:cslistener (LISTEN) 
VBoxHeadl 10889 Matt 19u IPv4 0x321cb0a981a71433  0t0 TCP *:cslistener (LISTEN) 

Vous pouvez voir à la fois vagabond (boîte virtuelle) et Atom. Bien que Atom est IPv6 qui est impair ....

Mais en activant le débogueur dans ATOM, en définissant un point d'arrêt et en frappant le site, rien ne se produit - ATOM ne se connecte jamais.

Des idées? Quelqu'un at-il eu ce travail?

+0

D'où avez-vous reçu ces instructions? Un manuel spécifique? Il semble y avoir un malentendu dans la façon dont xdebug fonctionne en général. 1) * "Mais c'est un peu déroutant car remote_connect_back = 1 signifie que xdebug va ignorer le paramètre remote_host" * Vous avez raison - cette option n'est pas nécessaire ici - il vaut mieux mettre '0' – LazyOne

+0

2)' xdebug. remote_host = 127.0.0.1' - c'est faux (à moins que vous n'effectuiez le débogage via le tunnel SSH). Il doit s'agir d'une adresse IP où le client de débogage (Atom dans votre cas) est en cours d'exécution. C'est xdebug qui se connecte au client et PAS autrement: https://xdebug.org/docs/remote 3) Cela signifie aussi que l'adresse IP doit être vue depuis cette machine vagabonde. Le moyen le plus facile de l'obtenir - regardez '$ _SERVER ['REMOTE_ADDR']' – LazyOne

+0

4) Cela signifie également que vous n'avez pas besoin d'exposer 9000 port dans Vagrant - personne ne se connectera à lui (comme vous le faites avec le port 80 pour le serveur web) - c'est xdebug de VM/guest OS se connecte à l'extérieur de votre système d'exploitation "réel"/hôte. Si quelque chose - il devrait permettre les connexions sortantes sur ce port au lieu d'entrants. 5) * "Si je vérifie qui écoute sur le port 9000" * celui-ci signifie que Atom est incapable de recevoir la connexion xdebug entrante sur TCPv4 .. que xdebug essaiera d'utiliser par défaut – LazyOne

Répondre

2

Mais c'est un peu déroutant que remote_connect_back=1 signifie xdebug ignorera la remote_host mise

Vous avez raison - cette option est pas là nécessaire - mieux être réglé sur 0

xdebug.remote_host = 127.0.0.1

Ceci est faux (unles s vous allez faire du débogage via le tunnel SSH). Il doit s'agir d'une adresse IP où le client de débogage (Atom dans votre cas) est en cours d'exécution. Il est xdebug qui se connecte au client et pas l'inverse: https://xdebug.org/docs/remote

Cela signifie aussi que l'adresse IP doit être vu de cette machine Vagrant. Peut-être le moyen le plus facile de l'obtenir - regardez ce que $_SERVER['REMOTE_ADDR'] a.

J'ai mappé le port 9000 dans le fichier vagabond.

config.vm.network :forwarded_port, guest: 9000, host: 9000

Vous n'avez pas besoin d'exposer le port 9000 à Vagrant - personne ne se connectera à elle (comme vous le faites avec le port 80 pour le serveur web) - il est xdebug de OS VM/invité être connecté à l'extérieur de votre système d'exploitation "réel"/hôte.

Si quelque chose - vous devriez permettre les connexions sortantes sur ce port au lieu d'entrant.

Si je vérifie qui est à l'écoute sur le port 9000

Celui-ci signifie que Atom ne peut pas recevoir connexion xdebug entrant sur TCPv4 .. qui xdebug va essayer d'utiliser par défaut (sauf si vous spécifiez IPv6 adresse au xdebug.remote_host).


Si quoi que ce soit - recueillir journal xdebug (xdebug.remote_log) et voir où il tente de se connecter, etc.

0

@LazyOne a déjà répondu à cette question, mais je question avait été causée par l'antivirus (Mcafee) qui était bloquer le trafic entrant. Peut-être que cela aidera quelqu'un à l'avenir.