netbeans affiche " en attente de connexion (netbeans-xdebugg)"

besoin d'aide pour configurer xdebug, pour déboguer des projets à partir D'IDE netbeans.

ce sont les caractéristiques de mes composants:

XAMPP 1.8.2

PHP: 5.4.16

netbeans: 7.3.1

Apache: 2.4.4 (Win32)

c'est la dernière partie de mon php.fichier ini:

 [XDebug]
 zend_extension = "C:xamppphpextphp_xdebug-2.2.3-5.4-vc9-nts.dll"
 ;xdebug.profiler_append = 0
 ;xdebug.profiler_enable = 1
 ;xdebug.profiler_enable_trigger = 0
 xdebug.profiler_output_dir = "C:xampptmp"
 ;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
 xdebug.remote_enable = 1
 xdebug.remote_handler = "dbgp"
 xdebug.remote_host = "127.0.0.1"
 ;xdebug.trace_output_dir = "C:xampptmp"

quand j'exécute phpinfo (), il n'y a pas de Xdebug installé, et quand je debug un projet de netbeans, il est dit " en attente de connexion (netbeans-xdebug)".

quelqu'un peut-il m'aider à le configurer? serait très apprécié.

merci d'avance.

63
demandé sur Yevgeniy Afanasyev 2013-07-12 15:16:28

21 réponses

avez-vous rectifié le problème ? Si non, alors s'il vous plaît essayer cette.

1.) php.ini contenu du fichier

[xDebug]
zend_extension = "c:\xampp\php\ext\php_xdebug-2.2.3-5.4-vc9.dll"
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
;xdebug.remote_host="localhost:81"
xdebug.remote_host=192.168.1.5
;xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_mode=req
xdebug.idekey="netbeans-xdebug"

xdebug.remote_host=192.168.1.5 - c'est l'adresse IPv4 de mon système, je l'ai changé car je ne pouvais pas déboguer avec localhost et 127.0.0.1 .

dans l'EDI NetBeans, ouvrez Tools-> Options -> PHP -> Debugging . Les valeurs du port de débogage et de L'Id de Session doivent correspondre au port et à l'idekey spécifiés dans php.ini .

Maintenant, sauvegardez php.ini, redémarrez Apache et essayez de déboguer.

Merci Johnson

108
répondu Johnson T A 2018-04-11 20:16:03

quand Netbeans démarre une session de débogage, il démarre deux écouteurs, l'un sur 0.0.0.0:9000 (Toutes les IPs IPv4 du système), et l'autre sur L'interface IPv6.

si Netbeans et le serveur Web sont sur le même système, idéalement XDebug serait configuré pour renvoyer les données à 127.0.0.1:9000 , sur lequel NetBeans écouterait (et seulement par session)...

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_autostart=0
xdebug.remote_connect_back=0

si, pour une raison quelconque, XDebug n'est pas en mesure de faire rapport à 127.0.0.1 , ou Netbeans n'écoute pas sur 127.0.0.1 , vous pouvez configurer XDebug pour renvoyer les données au $_SERVER['REMOTE_ADDR'] de la requête originale...

xdebug.remote_connect_back=1

de cette façon, vous n'avez pas à spécifier L'IP exacte (i.e., comme dans la réponse ci-dessus L'IP LAN: 192.168.1.5 ). L'inconvénient ici est que n'importe quelle source peut se connecter.

si vous avez d'autres problèmes, ceci...

xdebug.remote_autostart=1

... va également commencer le débogage processus pour les requêtes all , et pas seulement pour ceux qui ont la bonne requête de démarrage de session ou un cookie. L'inconvénient ici est que toutes les requêtes initieront la collecte de données de débogage et le rapport de retour (ce qui rend tout plus lent, et la production de plus de données).

bien que d'après ce que j'ai compris, la majorité de ces" en attente de connexion (netbeans-xdebug) " problèmes sur Windows (avec XAMPP, Wamp-Server, etc) sont généralement le résultat de pare-feu Windows et McAfee (ou autre pare-feu et logiciel antivirus) bloquant la connexion...

Source: Netbeans "en Attente De Connexion (netbeans-xdebug)" Question

9
répondu rightstuff 2015-11-24 05:23:52

je suis un programmeur.net et très nouveau en PHP. Récemment, j'ai essayé d'héberger une application PHP open source sur ma machine(Windows). Après la lutte pendant 5-6 jours, je vais énumérer les étapes qui ont fonctionné pour moi.

j'ai désinstallé toutes les installations précédentes de XAMPP et NetBeans et procédé avec de nouvelles installations.

ce n'est peut-être pas la solution pour tout le monde, mais ça a marché pour moi et j'espère que ça aidera quelqu'un.

  1. installer XAMPP

  2. installer netbeans pour PHP.

  3. ouvrez IIS et arrêtez. Il est en cours d'exécution sur le port 80 par défaut.(J'exécute XAMPP sur le port 80, c'est-à-dire par défaut, L'exécution sur un autre port peut nécessiter des paramètres de configuration supplémentaires)

  4. ouvrez le panneau de contrôle XAMPP et démarrez Apache. Si le port 80 est libre, pas de problème devrait se poser.

  5. ouvrir localhost dans le navigateur devrait afficher la page d'accueil de XAMPP.

  6. ouvrir phpinfo() lien sur le volet de gauche et copier tout le contenu de la page. Aller à: http://xdebug.org/wizard.php et coller tout le contenu dans TextBox et cliquez sur Analyser ma sortie phpinfo. Il vous indiquera le fichier Xdebug adapté à votre configuration.

  7. Téléchargez la dll Xdebug donnée et copiez-la dans C:\xampp\php\ext (Xampp étant le répertoire d'installation XAMPP par défaut)

  8. panneau de contrôle Goto XAMPP, cliquez sur le bouton de configuration devant Apache et sélectionnez php.in ,

  9. trouver ligne similaire ou exactement similaire,

; zend_extension = "C:\xampp\php\ext\php_xdebug.DLL"

(le point-virgule signifie qu'il est commenté)

supprimer le point-virgule et remplacer le chemin par le chemin de dll que vous venez de copier comme:

zend_extension = "C:\xampp\php\ext\php_xdebug-2.3.2-5.4-vc9.dll"
  1. de la Même façon de trouver des lignes

    ; xdebug.remote_enable = 0 ;xdebug.remote_handler = "dbgp "

supprimer les points-virgule devant les deux lignes et faire remote_enable = 1

xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
  1. redémarrez le serveur Apache.

  2. Copiez votre code de site web sous C:/XAMPP/htdocs/(your_website)/ cela signifie que votre index.php devrait être à C:/XAMPP/htdocs/(your_website)/index.php

  3. Open Netbeans sélectionnez New project -> PHP -> PHP project à partir de la source existante et sélectionnez le dossier que vous venez de copier dans le dossier htdocs. Mettez - le sur le serveur web Local.

  4. fixe un point d'arrêt sur la première ligne de index.php et débogue.

C'est tout.

paramètres supplémentaires ont été suggérés sur différents postes, mais les étapes mentionnées ci-dessus ont fonctionné parfaitement pour moi.

5
répondu Jitendra Sawant 2016-06-23 06:11:40

je viens de passer des heures à lire tant de réponses sur cette page et d'autres comme elle, et personne n'a mentionné ce qui a fini par être la solution pour moi:

assurez-vous que les paramètres du Port que vous avez choisis correspondent aux 3 emplacements

mon problème était qu'il y a trois endroits que le port choisi doit correspondre. Deux des miennes ont dit 9001 et une a dit 9000. Je les ai changées en 9000.

C'était le problème et pourquoi Netbeans dirait seulement " en attente de connexion (netbeans-xdebug)".

les 3 emplacements de réglage de port sont:

  • php.ini ( xdebug.remote_port=9000 )
  • propriétés du projet > Run Configuration > Advanced
  • Netbeans > Outils > Options > PHP > Débogage
3
répondu Ryan 2017-01-20 16:25:39

je veux mentionner quelque chose ici à propos de xdebug.remote_host

xdebug.remote_host="127.0.0.1"

N'est pas valide. Il peut fonctionner dans certains cas, mais les citations peuvent également causer des problèmes. La plupart des gens n'ont pas de problèmes lorsqu'ils utilisent des adresses IP entre guillemets, mais cela crée un mauvais précédent. Cela fait penser aux gens que si vous voulez utiliser un nom d'hôte ou une URL, vous devez le mettre entre guillemets. C'est incorrect, les URL entre guillemets ne fonctionneront pas.

si vous souhaitez déboguer en utilisant un url, vous pouvez le faire en mettant simplement l'url après les égaux comme ceci:

xdebug.remote_host=subdomain.mydomain.com

je tiens aussi à mentionner que si vous avez un numéro de port, ne l'ajoutez pas. Cela ne fonctionne pas:

xdebug.remote_host=subdomain.mydomain.com:9000

c'est Ce que vous voulez faire:

xdebug.remote_host=subdomain.mydomain.com
xdebug.remote_port=9000

si vous faites cela, je vous conseille également de vous assurer que remote_connect_back est désactivé. Comme ceci:

xdebug.remote_connect_back=0

ou vous pouvez omettre entièrement, comme ceci:

;xdebug.remote_connect_back=1

si remote_connect_back est activé, il va essayer de retirer votre adresse IP de la connexion entrante et ignorer le paramètre remote_host et port.

Xdebug utilise de vieux TCP pour faire des connexions. Ce N'est pas HTTP. Cela signifie que des outils comme Fiddler ne montreront aucun paquet ou information sur le débogage. Si vous avez besoin de déboguer, et de voir si le serveur fait un appel à votre IDE il ya quelques façons que vous pouvez aller vérifier.

Wireshark vous permettra de voir le trafic TCP. Aussi si vous êtes sur Windows, Microsoft Message Analyzer peut également surveiller TCP.

mais, si tout ce que vous essayez de faire est de supprimer votre IDE est une cause possible de problèmes de débogage à distance, je vous suggère plutôt de démarrer un serveur TCP local.

c'est un excellent programme java gratuit pour démarrer un serveur TCP: http://sockettest.sourceforge.net /

How to start a TCP Server

dans la section adresse IP, il suffit de lister 127.0.0.1 ou de la laisser à 0.0.0.0. Ensuite, listez le numéro de port, qui est généralement par défaut à 9000 pour xdebug.

une fois que le serveur TCP est en cours d'exécution, ouvrez votre page web distante avec un appel xdebug_break(); function. Cela indiquera à xdebug sur le serveur distant de commencer à déboguer sur n'importe quel serveur et port que vous avez listé dans votre php.ini.

regardez le serveur socket et voyez si vous avez une connexion. Les premières données envoyées devraient ressembler à quelque chose comme ceci:

<init appid="APPID"
      idekey="IDE_KEY"
      session="DBGP_COOKIE"
      thread="THREAD_ID"
      parent="PARENT_APPID"
      language="LANGUAGE_NAME"
      protocol_version="1.0"
      fileuri="file://path/to/file">

si vous avez réussi jusqu'ici, le débogage à distance fonctionne! Il suffit d'arrêter le serveur et de configurer votre IDE pour écouter sur ce port!


si vous êtes comme la plupart d'entre nous, votre machine de développement est derrière un routeur avec NAT. Cela signifie que tout le monde dans votre bureau a la même adresse IP publique. C'est un problème parce que quand xdebug contacte cette adresse IP pour démarrer le débogage, il touche le routeur, et pas votre ordinateur. Le routeur peut être configuré pour passer certains numéros de port à des ordinateurs individuels, mais vous ne voudrez peut-être pas le faire, car ce port sera ouvert jusqu'à ce que vous changiez les paramètres de votre routeur.

une autre option est D'utiliser SSH. Il est un excellent exemple de comment faire ici: http://stuporglue.org/setting-up-xdebug-with-netbeans-on-windows-with-a-remote-apache-server/#attachment_1305

mon option préférée est d'utiliser Ngrok . Ngrok est un outil idéal pour rediriger le trafic http, https et TCP. Afin d'utiliser le protocole TCP rediriger fonction, vous devez vous inscrire pour un compte gratuit.

une fois que vous avez ouvert un compte et ajouté votre clé API à votre ordinateur, lancez cette commande sur l'ordinateur sur lequel se trouve votre IDE:

ngrok tcp 9000

ceci ouvrira un tunnel tcp (pas http) à partir du serveur ngrok à n'importe quelle machine sur laquelle vous avez lancé la commande. J'utilise le port 9000, vous pouvez changer ce port si votre IDE est configuré pour un port Xdebug différent.

c'est Ce que vous devriez voir:

Ngrok tcp tunnel open

Vous aurez besoin de voir ce que l'url est pour le tunnel TCP qui a été ouvert. Dans cet exemple, il est:

0.tcp.ngrok.io:14904

pour cette session, le paramètre Xdebug sur votre serveur doit être:

xdebug.remote_host=0.tcp.ngrok.io
xdebug.remote_port=14904

L'URL et le port changeront chaque fois que ngrok est lancé. Si vous voulez avoir la même url et le port, vous devez mettre à niveau vers un compte payant. Assurez-vous de redémarrer apache après avoir modifié votre php.ini.

3
répondu Beachhouse 2018-04-10 21:00:46

vérifiez également les paramètres du pare-feu" windows".

pour moi ça ne marche pas parce que mon réseau LAN a été déclaré "réseau public". Après que je l'ai commuté en "réseau de travail" il a fonctionné très bien.

2
répondu Tim Stollberg 2014-07-12 08:59:14

dans mon cas, le journal Apache contenait un avertissement de PHP sur le fait de ne pas avoir de date fixe.fuseau. Xdebug / netbeans a commencé à fonctionner dès que je l'ai configuré en php.ini et redémarré apache.

date.timezone = America/Los_Angeles

C'est PHP 5.5.

1
répondu user2701551 2013-08-20 21:47:15

je suis sur Windows avec xampp et j'ai changé la section [XDebug] de mon php.ini (en bas) à la suivante, pour le faire fonctionner:

zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000

D'après le wiki Netbeans ici: http://wiki.netbeans.org/HowToConfigureXDebug

si vous avez Apache en cours d'exécution, n'oubliez pas de le redémarrer après avoir configuré XDebug et sauvegardé php.ini.

1
répondu Richard Lovell 2014-11-18 10:26:33

ajoutant que cela a fonctionné pour moi:

xdebug.idekey=netbeans-xdebug   
1
répondu John Sarris 2015-02-25 09:45:09

je mon cas si j'ajoute suivant en php ini il n'a pas fonctionné

zend_extension_ts="C:\PHP\PHP560\ext\php_xdebug-2.4.0rc4-5.6-vc11.dll"

mais si j'ajoute

zend_extension="C:\PHP\PHP560\ext\php_xdebug-2.4.0rc4-5.6-vc11.dll"

ça marche très bien.

1
répondu nikunj gandhi 2016-06-04 07:42:44

ayant correctement configuré le php.fichier ini, netbeans, port forwarding sur le routeur, j'étais encore en train de recevoir le misérable "waiting for connection (netbeans-xdebug). J'ai finalement remarqué sur la page netbeans "N'oubliez pas de définir output_buffering = Off dans votre php.fichier ini".

donc j'ai vérifié le /etc/php/7.x/apache2 / php.la valeur du fichier ini était de 4096. Donc j'ai réinitialisé output_buffering=Off et lo ça a marché !!!

Espérons que cette aide quelqu'un, comme le message implique qu'il s'agit d'une erreur de connexion plutôt que d'une erreur de configuration.

1
répondu shires-boy 2017-03-03 17:11:02

check this out: Lancement XDebug dans Netbeans sur une demande externe


une autre façon est d'ouvrir une nouvelle fenêtre:

essayer d'aller sur Projet > exécuter configuration > avance

et passer à la valeur par défaut, vérifiez si elle ouvre une autre fenêtre dans le navigateur

0
répondu Julio Marins 2017-05-23 12:34:47

un essai pourrait être de démarrer php -i dans la fenêtre de commande. Lors de la redirection de la sortie une erreur était

pour moi, c'était la solution finale parce que j'ai eu une mauvaise version de Xdebug téléchargé

pour moi il aurait dû être: php_xdebug-2.1.2-5.3-vc6.dll

mais j'ai eu: php_xdebug-2.2.4-5.3-vc9.dll . Donc une erreur s'est produite de php -i

E:\Programme\php>php -i > myOutputFromPhp

les rendements d'ERREUR suivant

ne peut pas charger Xdebug - il a été construit avec la configuration API220090626, TS, VC9, alors que le moteur en marche est API220090626, TS, VC6

0
répondu AlfredK 2014-07-24 09:08:30

j'ai eu le même problème. pourquoi? D'abord j'ai installé WAMP, remercier Netbeans et ils travaillent ensemble comme un charme. Plus tard, J'ai installé XAMPP et Localhost sites ont été exécutés en douceur, mais NetBeans ne pourrait jamais se connecter à XAMPP (netbeans-xdebug). En même temps, NetBeans fonctionnait bien avec Wamp.

ma solution était de retourner à Wamp. C'est mieux que rien.

mon PC: Win-7-32, NetBeans-8.0.2,

wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b 151910920"

XAMPP-win32-5.6.8-0-VC11

0
répondu Yevgeniy Afanasyev 2015-05-14 00:14:38

pour les utilisateurs Ubuntu:

  1. sudo su
  2. apt-get install php5-dev php-pear
  3. pecl installer xdebug
  4. find / -name 'xdebug.so '2 > / dev / null
  5. il sera de retour quelque chose comme: /usr/lib/php5/20121212/xdebug.donc
  6. vi/etc/php5/apache2 / php.ini
  7. ajouter cette ligne: zend_extension="/usr/lib/php5/20121212/xdebug.donc,"
  8. service apache2 restart
  9. restart IDE
0
répondu dtmiRRor 2015-05-15 07:36:08

j'ai passé beaucoup de temps à essayer d'obtenir la mise en place optimale et chose que cela mérite sa propre réponse, même si @Johnson ta est un il est presque correct.

dit-il

xdebug.remote_host=192.168.1.5 - c'est l'adresse IPv4 de mon système, j'ai changé pour cela parce que je ne pouvais pas déboguer avec localhost et 127.0.0.1.

Eh bien, tout le monde ne peut pas utiliser une adresse privée, ou il peut être dynamique, ou d'autres choses. En outre, dans mon cas, je souffrais de Très longs temps d'attente avant débogage réellement commencé - 30 s ou ainsi à chaque fois. C'était infaisable.

je suis sûr que tout le monde ayant ces problèmes sont au moins sur Windows 7 ou ainsi. Le problème est lié à un mélange entre name resolution et xdebug. Pour les surmonter assurez-vous que:

  • Port 9000 n'est pas utilisé. Si c'est le cas, changez-le en un non utilisé, tous les deux en php.ini et dans netbeans.
  • assurez-vous que xdebug.remote_enable est on .
  • si vous voulez pouvoir déboguer en utilisant à la fois localhost et 127.0.0.1 adresses, ouvrez \Windows\System32\drivers\etc et assurez-vous que vous avez là les lignes suivantes:

    127.0.0.1 localhost

    :: 1 localhost

marque assurez-vous que la première ligne n'ont pas un # devant elle et la seconde ne l'avoir.

mon php de travail.section ini (Je n'ai pas besoin de profiler donc je l'ai désactivé):

[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.remote_enable = on
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_port = 9001
xdebug.trace_output_dir = "C:\xampp\tmp"
xdebug.remote_log = "C:\xampp\tmp\xdebug\xdebug.log"
xdebug.idekey = "netbeans-xdebug"
xdebug.remote_autostart = on
xdebug.remote_connect_back = on

Stop netbeans débogueur. Redémarrez Apache.

je parie que vous ne souffrirez plus de longues périodes d'attente ni de comportement étrange avec le débogueur.

explication: Bien que dans etc / hosts ils disent " la résolution du nom de localhost est traitée dans DNS lui-même", quelle que soit la raison pour laquelle il ne fonctionne pas bien avec xdebug si vous ne l'avez pas explicitement indiqué dans ce fichier. Le mettre explicitement ne semble pas nuire dans l'ensemble, et résout ce problème avec xdebug. Mais il faut aussi désactiver explicitement la notation courte sIPv6 pour localhost (: 1) pour que tout cela fonctionne. Ne sais pas les raisons internes mais triead toutes les combinaisons et celui-ci fonctionne pour moi comme un charme.

0
répondu Pere 2015-05-28 10:42:49

j'ai eu ce problème pour un projet, mais pas pour d'autres. Donc xdebug a été correctement configuré, les paramètres du projet étaient corrects, mais ça n'a pas marché.

donc je viens de supprimer le sous-répertoire nbproject, contenant les paramètres du projet, et j'ai créé un nouveau projet avec le source existant. Cela a résolu le problème pour moi.

0
répondu johanv 2015-12-14 15:40:12

sélectionnez un navigateur spécifique pour le débogage:

  1. clic droit sur le projet - > choisir les propriétés
  2. sélectionner les catégories: navigateur puis sélectionné un navigateur spécifique pour le débogage
0
répondu Vinh 2016-03-30 05:03:36

si votre xdebug ne fonctionne pas correctement, vérifiez le journal de bord de votre serveur:

$ sudo less /var/log/httpd/error_log

Pour vérifier les connexions, utilisez cette commande:

$ sudo netstat -an

après le débogage sur netbeans, si vous utilisez la commande netstat, vous pouvez voir le port de xdebug (probablement 80):

tcp6       0      0 192.168.33.10:80       192.168.33.2:49901      ESTABLISHED

le port de netbeans est 9000:

tcp        0      0 192.168.33.10:52024    192.168.33.2:9000       ESTABLISHED

vous pouvez changer le port de xdebug d'ici (à partir du menu du haut, Outils - > Options - > PHP): enter image description here

si la connexion n'est pas établie, il est très possible que votre connexion soit bloquée par votre programme antivirus ou pare-feu. Vous pouvez le vérifier dans votre programme anti-virus ou pare-feu et supprimer le bloc car il s'agit d'une connexion sûre.

0
répondu lechat 2017-12-30 15:15:16

après avoir apporté des modifications à votre php.ini ou xdebug.les fichiers ini, quelle que soit la façon dont vous exécutez votre serveur web, assurez-vous de redémarrer ce serveur web (par exemple: Service httpd restart sur CentOS) ou Apache ne reprendra pas les modifications que vous y avez apportées .fichier ini.

le paquet xdebug sur CentOS est"phpXXu-pecl-xdebug".

par défaut sur la plupart des Xdebugs récents sont généralement très bien. Il est strictement nécessaire d'obtenir ces deux valeurs sont justes, quelque part dans un Apache .fichier ini:

xdebug.remote_enable=on
xdebug.remote_host=[DNS entry that resolves to the IP4 of your debugger]
0
répondu johnwbyrd 2018-03-10 03:27:40

j'ai eu le même problème et a essayé de le résoudre pendant des heures. J'ai finalement découvert que l'extension chrome ipflood qui change les en-têtes pour faire croire que vous utilisez un proxy, en était la cause.

il fonctionne parfaitement bien après que je l'ai désactivé!

0
répondu Black 2018-04-11 20:18:06