Xdebug de configuration de PHP en fastcgi et eclipse?
J'ai été en utilisant eclipse pdt en conjonction avec xdebug et apache sans problèmes, depuis plus d'un an. Les choses fonctionnaient parfaitement et j'ai pu faire tout le débogage interactif je voulais depuis eclipse (à l'aide de ma propre machine en tant que serveur).
Maintenant je suis passé de apache à nginx (et donc PHP s'exécute maintenant non pas comme un Apache, service, mais comme fast-cgi) et je ne peux pas trouver un moyen de configurer eclipse pour le travail bien avec xdebug. Je ne suis ni sûr que si le problème est avec xdebug ou avec eclipse (ou les deux) pour être sûr.
Dans la configuration eclipse je l'ai déjà changé la référence du fichier de configuration de PHP pour /etc/php5/cli/php.ini
.
Tentatives avec php.ini de la version 1
Avec le suivant php.ini
fichier
zend_extension=/usr/lib/php5/20060613/xdebug.so
- Je vois que xdebug est de travail (par exemple si je fais un
var_dump()
- je obtenir le xdebug version de celui-ci, pas le PHP un) - Je ne peux pas avoir le débogage interactif à partir d'eclipse: le navigateur s'ouvre et charge la page complètement avec l'URL contenant
...?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=...
, mais l'exécution de ce programme ne s'arrête pas à des points d'arrêt - Dans le coin inférieur droit de l'éclipse, je vois un message suspect: "Lancement =put_the_name_of_my_project_here=: 57%" qui alterne avec la "rafraîchissant" espace de travail.
Tentatives avec php.ini de la version 2
Si j'utilise cette autre version du fichier (qui est ce qu'il a fonctionné jusqu'à ce que je suis passé à nginx):
zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=On
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req
Je ne peux pas accéder à n'importe quelle page de mes sites.
PS: données Supplémentaires sur ma machine:
- OS: GNU/Linux - Ubuntu 9.10 64 bits.
- PHP: 5.2.10-2ubuntu6.3 avec Suhosin-Patch 0.9.7; Zend Engine v2.2.0, le droit d'Auteur (c) 1998-2009 Zend Technologies avec Xdebug v2.0.4
- Eclipse: voir la capture d'écran.
OriginalL'auteur mac | 2009-12-08
Vous devez vous connecter pour publier un commentaire.
Ce Beau dit est correct (ne pouvait pas voter car je suis nouveau!).
Généralement, addging à /etc/php5/cgi/php.ini (ou de localiser php.ini) les lignes comme
fait le travail.
Donc après le changement,
Cela a fonctionné pour moi.
Votre post m'a fait regarder pour ce que j'ai besoin de redémarrer.. j'ai dû courir
/etc/init.d/php5-fpm restart
OriginalL'auteur valk
xdebug et FastCGI utiliser le même port par défaut (9000). Changer le port de XDebug dans votre php.fichier ini comme ceci:
et mettre à jour vos paramètres IDE pour utiliser 9001.
Grâce Effing beaucoup !!! Bien que j'ai été en utilisant mon php-fpm et nginx pour se connecter via un socket, changer le port par défaut pour 9001 résolu mon problème! Je suppose que php-fpm occupe encore le port, bien que ses configuré pour écouter sur un socket ??
Oui! Je voyais
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 23266/php-fpm: mast
et je me demandais ce que php-fpm était en train de faire là.OriginalL'auteur Maxence
Essayez de redémarrer votre php. Parce que vous avez php fastcgi, le redémarrage de nginx ne semble pas le faire. Quand j'ai redémarré mon serveur tout entier, la modification a pris effet.
sudo service php5-fpm restart
OriginalL'auteur Beau
J'ai eu le même problème et résolu.
Dans le fichier
/etc/php5/apache2/php.ini
ajouter:Dans le fichier
/etc/php5/cli/php.ini
ajouter:Redémarrez Apache:
Srry. Dans cette solution que j'ai donner l'exemple apache2. Mais si vous pouvez essayer avec d'autres services web :D. Lorsque le fichier de config a changé devez redémarrer le service web ( Apache, nginx ..). Dans la solution que vous définissez besoin de xdebug.remote_autostart = off. Pourquoi mettre "xdebug.remote_autostart = off". C'est la réponse: si c'est "xdebug.remote_autostart = on". Cela va forcer Xdebug pour démarrer une session de débogage pour chaque demande qui est fait sur ce serveur, sans avoir à spécifier dans la demande d'une session de débogage est voulu.
vous pouvez en lire plus ici :doc.waterproof.fr/phpedit/debugging_profiling/configuration/...
OriginalL'auteur protect4you
Problème dans la solution est "xdebug.remote_autostart = sur".
Si vous définissez dans le fichier de config "xdebug.remote_autostart = sur". Cela va forcer Xdebug pour démarrer une session de débogage pour chaque demande qui est fait sur ce serveur, sans avoir à spécifier dans la demande d'une session de débogage est voulu.
Vous avez besoin de changer
Et redémarrez le service web.
Dans cet exemple est de Apache.
Vous pouvez en lire plus ici: http://doc.waterproof.fr/phpedit/debugging_profiling/configuration/debugger_with_xdebug
GoodLuck!
OriginalL'auteur protect4you