Lancement de l'extension XDebug dans Netbeans sur une demande externe
Je suis à l'aide de Netbeans 6.7 et XDebug pour déboguer un PHP site sur ma machine, le lancement de la demande de dans Netbeans (Projet->Debug). Cela fonctionne bien, et est très utile.
Ma question est: Est-il possible d'attacher le débogueur à toute demande qui vient, plutôt ceux que j'lancement de l'intérieur Netbeans?
c'est à dire, au lieu de cliquer sur "Debug", mis Netbeans dans un mode par lequel le débogueur est lancé et s'attache à la prochaine demande qui vient.
J'ai le sentiment que cela peut être une question stupide, mais si c'est possible, ce serait sympa.
Edit: Un peu plus d'informations
Mon système (Ubuntu 9.04) est défini comme suit:
Contenu de /etc/php5/conf.d/xdebug.ini
zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
Netbeans PHP options de débogage sont les valeurs par défaut:
Debugger Port: 9000
Session ID: netbeans-xdebug
Stop at the First Line: ticked
Mon /etc/hosts
fichier redirige www.mywebsite.com
à localhost
Si je clique sur le bouton de débogage dans Netbeans, puis Firefox est lancé avec l'adresse http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug
, et le débogueur fonctionne comme prévu.
Mais si je viens de parcourir à http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug
, cela ne veut pas démarrer le débogueur dans Netbeans.
J'ai aussi essayé de réglage xdebug.remote_host=www.mywebsite.com
, mais qui ne fait pas de différence.
Aussi, j'ai activé xdebug.remote_log
, et qui diffuse de l'information pour quand je commence à partir dans netbeans, mais rien pour les demandes externes. Donc, je ne pense pas que XDebug est de voir les demandes externes à tous.
- remarque: n'est-il pas remote_handler avec un r à la fin?!?
- ouais, je pense que vous avez raison, merci. Fixe.
- Pour moi, je ne savais pas qu'il y a TROIS endroits où j'ai eu pour spécifier le port = 9000, et l'écart était à l'origine “en Attente De Connexion (netbeans-xdebug)”: stackoverflow.com/a/41768167/470749
Vous devez vous connecter pour publier un commentaire.
aller à propriétés du projet > configuration d'exécution > avancé > debug url et vérifier ne pas ouvrir le navigateur web (*). ne pas définir l'hôte sous débogueur proxy. enregistrer ces paramètres. dans la fenêtre de projet, sur votre projet: droit de la souris cliquez sur > debug (ce qui commence à écouter de débogage de connexions). aucun navigateur n'est commencé. entrez
http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug
dans votre navigateur. il devrait casser dans netbeans. au moins, c'est ce qui se passe ici 🙂(*) vous pouvez également définir un chemin de cartographie - pour moi, ça fonctionne sans
?XDEBUG_SESSION_START=netbeans-xdebug
à la demande d'aller à la @Pada répondrexdebug_remote_autostart
, de toute façon, cela dépend du cas d'utilisation.Par défaut xdebug de ne pas tenter de se connecter à l'hôte distant lorsque le "XDEBUG_SESSION_START" Cookie/URL argument n'a pas été spécifiée.
Vous pouvez activer l'extension xdebug pour être "toujours", en définissant la xdebug.remote_autostart à 1 dans le php.ini.
En outre, vous devez démarrer le débogueur PHP dans NetBeans pour que cela fonctionne. Je n'ai pas trouvé une meilleure solution pour le moment, mais vous pouvez utiliser le débogueur PHP écoute les connexions entrantes par commencer à déboguer un fichier aléatoire (utilisez CTRL+MAJ+F5 pour démarrer le débogage d'un fichier), puis continue (en appuyant sur F5) une fois il s'est arrêté au point d'arrêt. Netbeans débogueur doit s'exécuter jusqu'à ce que vous avez réellement l'arrêter.
Mise à jour: en raison de NetBeans vérification de l'id de session (XDEBUG_SESSION_START), vous devez définir le idekey variable. par exemple:
?XDEBUG_SESSION_START=session_name
de la requête HTTPidekey
, cependant.J'ai eu un problème similaire (sur NetBeans, Mac OSX), après la mise à niveau de PHP et de compilation/installation de xdebug. phpinfo a montré xdebug en tant que chargé, mais il n'aurait toujours pas vous connecter, et après avoir essayé tout ce qui est inscrit ci-dessus encore n'avait pas de succès. Ensuite, j'ai essayé réduire le nombre de paramètres à définir dans mon PHP.ini fichier vers le minimum requis. Cela semble régler le problème pour moi.
J'ai aussi renommé le défaut xdebug.idekey de netbeans-xdebug à défaut, puis de nouveau de retour.
Après le redémarrage d'Apache, xdebug commencé à travailler à nouveau: je ne suis pas sûr de ce qu'il fixe, mais un bon point de départ pourrait être de juste de démarrer avec le minimum de nombre de xdebug paramètres dans votre php.fichier ini, puis, lentement, ajouter plus si vous en avez besoin. Je soupçonne que cela a peut-être quelque chose à voir avec les paramètres de trace, mais ne peut pas en être sûr.
Les paramètres de base j'ai utilisé étaient:
C'est aussi une bonne idée de compiler debugclient (dans le xdebug paquet source), et cochez débogage sur la ligne de commande comme ceci vous permet de savoir si xdebug peut au moins s'exécuter indépendamment de votre IDE.
Pas sûr au sujet de Netbeans, mais tout autre IDE que j'ai utilisé est toujours à l'écoute pour une connexion de débogage. Vous pouvez démarrer une nouvelle session de débogage à partir de xdebug par l'ajout de la chaîne de requête
?XDEBUG_SESSION_START=name
à l'url. Si Netbeans est à l'écoute, ceci devrait alors lancer une nouvelle session de débogage.Voir http://xdebug.org/docs/remote#browser_session pour plus de détails