2010-05-31 5 views
62

J'ai réussi à initier une session de débogage de script php-cli à partir de l'IDE lui-même, mais j'ai besoin de démarrer la session de débogage depuis le shell/ligne de commande. Ce sont des scripts PHP de maintenance plutôt complexes qui prennent beaucoup de paramètres en entrée, donc entrer des arguments depuis Netbeans est un peu compliqué.Déboguer des scripts php-cli avec xdebug et netbeans?

Je l'ai déjà fait avec Zend studio: https://zend18.zendesk.com/hc/en-us/articles/203838096-Debugging-PHP-CLI-Scripts, mais maintenant je dois le faire fonctionner avec Netbeans.

Merci d'avance.

Répondre

39

Ajoutez xdebug.remote_autostart=On à votre fichier php.ini ou ajoutez -dxdebug.remote_autostart=On en tant que paramètre à l'appel binaire PHP (php -d... script.php).

Voir http://xdebug.org/docs/remote

+3

J'utilise PHPStorm sur Windows pour mon IDE et basé sur johannes réponse que j'appelle mes scripts php de comme si 'php -dxdebug.remote_autostart recueil HSC = On -didekey = PHPStorm -dremote_host = localhost -dprofiler_enable = 1 MY_PHP_PAGE.php PARAM1 PARAM2 '@Coenie Richards –

+3

recueil HSC qui devrait être: php -dxdebug.remote_autostart = On -dxdebug.idekey = PHPStorm -dxdebug.remote_host = localhost MY_PHP_PAGE.php PARAM1 PARAM2 – Tim

101

je suis arrivé ce travail par sur Ubuntu/Netbeans:

  • copie des lignes de configuration xdebug du fichier /etc/php5/apache2/php.ini dans/etc/php5/cli/php.ini
  • définir une variable d'environnement avec le nom de la session de débogage (vous pouvez obtenir auprès de la chaîne de requête dans l'URL des NetBeans page lance lorsque vous démarrez le débogage) si la commande est: export XDEBUG_CONFIG="idekey=netbeans-xdebug"

Ensuite, il suffit de commencer le débogage dans netbeans et de faire php myscript.php sur la ligne de commande.

Remarque: Si vous souhaitez déboguer à distance à l'aide de netbeans, vous devez utiliser le fichier de débogage sur le fichier exécuté à partir de la ligne de commande, et non sur le débogage normal.

+1

+ 1 à cela, merci @AndrewHancox. Pour le débogage d'une console, j'ai également trouvé utile de configurer "Ne pas ouvrir le navigateur Web" dans le projet Propriétés → Exécuter la configuration → Avancé ... –

+11

dans Windows vous devez utiliser SET XDEBUG_CONFIG = idekey = xdebug (remarquez les citations manquantes !) – fishbone

+0

ne fonctionne pas pour moi, j'utilise Ubuntu 12.04 LTS et Netbeans 7.3. Pourrais-je me donner un indice? en utilisant gui fonctionne, mais avec la console pas. J'ai un conf.d avec les paramètres xdebug sur les dossiers apache2 et cli. J'ai exporté la variable aussi. – GarouDan

12

Je vais mettre tous ensemble, ce qui suit est ce qui fonctionne pour moi.

file: 
/etc/php5/cli/php.ini 

zend_extension="/usr/lib/php5/20121212/xdebug.so" -> xdebug bin path 
xdebug.remote_enable=on 
xdebug.remote_host=127.0.0.1 
xdebug.remote_handler="dbgp" 
xdebug.remote_mode="req" 
xdebug.remote_port=9000 -> same port configured in netbeans debugging tab 
xdebug.idekey="netbeans-xdebug" -> same ide configured in netbeans debuggin tab 
xdebug.remote_autostart=1 

alors, sans aucun autre paramètre

php script.php

0

J'ai eu le même problème que ma solution était la suivante:

Dans Netbeans> la fenêtre de projet> faites un clic droit sur le projet php> propriétés> Exécuter la configuration. Créer une nouvelle configuration.

Remplir les valeurs correctes:

  • Exécuter en tant que "script"
  • set interpréteur PHP
  • fichier d'index de changement dans mon cas, il était "Cron/index.php".
0

Vous pouvez utiliser le projet Dephpugger si vous ne voulez pas configurer xDebug pour votre IDE (je déteste les configurations).

https://github.com/tacnoman/dephpugger

Vous pouvez exécuter le débogueur dans le terminal, comme ipdb pour Python et Ruby byebug.

0

J'ai eu le même problème, ma solution était la suivante:

  1. Environnement: Netbeans 8.2 sous Windows (apache + php)
  2. En supposant que vous avez déjà PHP et NetBeans configurés pour déboguer code à l'aide Xdebug (http://wiki.netbeans.org/HowToConfigureXDebug#Notes_on_Windows_Configuration)
  3. sur NetBeans créer une nouvelle configuration (« Propriétés du projet »> « Exécuter configuration »> « New ... »
  4. Dans le nouveau jeu de configuration Ne pas ouvrir le navigateur Web (« Avancé »> « Ne pas ouvrir Sourcils web er »)
  5. ensemble actif de la nouvelle configuration créée (menu déroulant dans la barre d'outils)
  6. Set point d'arrêt pour le débogage
  7. debug Ouvrir (CTRL + F5)
  8. Ouvrir fenêtre de terminal (« Outils »> « Open in Terminal ")
  9. Type dans le terminal: $ export XDEBUG_CONFIG =" idekey = netbeans-xdebug "(la valeur" netbeans-xdebug "doit coïncider avec" Outils ">" Options ">" Débogage ">" ID session ")
  10. Tapez le terminal: $ php.exe -f "C: \ Apache24 \ htdocs \ www.NomSite \ ScriptName.php" - "Arg1 = x & Arg2 = y"
  11. débogage Suivez ...
Questions connexes