2010-05-31 2 views
62

Sono riuscito ad avviare la sessione di debug di script php-cli dall'IDE stesso, ma ho bisogno di avviare la sessione di debug dalla shell/riga di comando. Si tratta di script PHP di manutenzione piuttosto complessi che richiedono molti parametri di input, pertanto l'inserimento di argomenti da Netbeans è un po 'macchinoso.Debug degli script php-cli con xdebug e netbeans?

L'ho già fatto con Zend studio: https://zend18.zendesk.com/hc/en-us/articles/203838096-Debugging-PHP-CLI-Scripts, ma ora ho bisogno di farlo funzionare con Netbeans.

Grazie in anticipo.

risposta

39

Aggiungi xdebug.remote_autostart=On al file php.ini o aggiungi -dxdebug.remote_autostart=On come parametro alla chiamata binaria PHP (php -d... script.php).

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

+3

Io uso PhpStorm su Windows per il mio IDE e sulla base di Johannes rispondo che io chiamo i miei script PHP da questo modo 'Codice delle php -dxdebug.remote_autostart = On -didekey = PhpStorm -dremote_host = localhost -dprofiler_enable = 1 MY_PHP_PAGE.php PARAM1 PARAM2 'Codice delle –

+3

@Coenie Richards che dovrebbe essere: php -dxdebug.remote_autostart = On -dxdebug.idekey = PhpStorm -dxdebug.remote_host = localhost MY_PHP_PAGE.php PARAM1 PARAM2 – Tim

101

ho ottenuto questo lavorando su Ubuntu/Netbeans da:

  • copiando le linee xdebug di configurazione dal file /etc/php5/apache2/php.ini in/etc/php5/cli/php.ini
  • impostare una variabile d'ambiente con il nome della sessione di debug (si può ottenere questo dalla stringa di query nell'URL dei netbeans pagina lancia quando si avvia il debug) in modo che il comando è: export XDEBUG_CONFIG="idekey=netbeans-xdebug"

Quindi si tratta semplicemente di avviare il debug in netbeans e eseguire php myscript.php nella riga di comando.

Nota: Se si desidera eseguire il debug in remoto utilizzando netbeans è necessario utilizzare il file di debug sul file che viene eseguito dalla riga di comando, non normale Debug.

+1

+ 1 a questo, grazie @AndrewHancox. Per il debug di un'app per console ho anche trovato utile impostare "Non aprire il browser Web" nel progetto Proprietà → Esegui configurazione → Avanzate ... –

+11

in windows devi usare 'SET XDEBUG_CONFIG = idekey = xdebug' (notare le virgolette mancanti !) – fishbone

+0

non funziona, sto usando Ubuntu 12.04 LTS e Netbeans 7.3. Potrei darmi un indizio? usando gui funziona, ma con console no. Ho un conf.d con le impostazioni di xdebug su apache2 e cartelle cli. Ho esportato anche la variabile. – GarouDan

12

Metterò tutti insieme, il seguente è che funziona per me.

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 

allora, senza alcun altro parametro

php script.php

0

Ho avuto lo stesso problema la mia soluzione era questa:

in NetBeans> finestra del progetto> tasto destro del mouse sul progetto php> proprietà> Esegui configurazione. Crea una nuova configurazione.

Riempire i valori corretti:

  • Esegui come
  • set interprete PHP
  • file indice cambiamento nel mio caso è stato "cron/index.php" "script".
0

È possibile utilizzare il progetto Dephpugger se non si desidera configurare xDebug per l'IDE (io odio le configurazioni).

https://github.com/tacnoman/dephpugger

È possibile eseguire il debugger in terminal, come IPDB per Python e byebug per Ruby.

0

Ho avuto lo stesso problema, la mia soluzione era questa:

  1. Ambiente: Netbeans 8.2 in ambiente Windows (Apache + PHP)
  2. Supponendo che si dispone già di PHP e NetBeans configurati per eseguire il debug codice utilizzando Xdebug (http://wiki.netbeans.org/HowToConfigureXDebug#Notes_on_Windows_Configuration)
  3. Su NetBeans creare nuova configurazione (“Proprietà del progetto”> “configurazione Esegui”> “nuovo ...”
  4. Nel nuovo set di configurazione non aprire web browser (“Avanzate”> “non aprire fronti web er”)
  5. set attivo la nuova configurazione creata (discesa nella barra degli strumenti)
  6. Imposta punto di interruzione per il debug
  7. aperta di debug (CTRL + F5)
  8. finestra Apri Terminale (‘Strumenti’>“Apri in Terminale ")
  9. Digitare terminal: $ export XDEBUG_CONFIG =" idekey = netbeans-xdebug "(il valore" netbeans-xdebug "deve coincidere con" Strumenti ">" Opzioni ">" Debug ">" ID sessione ")
  10. Digitare terminale: $ php.exe -f "C: \ Apache24 \ htdocs \ www.SiteName \ ScriptName.php" - "Arg1 = x & Arg2 = y"
  11. Segui il debug ...