2010-05-31 18 views
62

He logrado iniciar la sesión de depuración del script php-cli desde el propio IDE, pero necesito iniciar la sesión de depuración desde el shell/línea de comandos. Se trata de scripts PHP de mantenimiento bastante complejos que requieren una gran cantidad de parámetros de entrada, por lo que ingresar argumentos dentro de Netbeans es un poco engorroso.Depuración de scripts php-cli con xdebug y netbeans?

Lo he hecho antes con Zend studio: https://zend18.zendesk.com/hc/en-us/articles/203838096-Debugging-PHP-CLI-Scripts, pero ahora necesito hacerlo funcionar con Netbeans.

Gracias de antemano.

Respuesta

39

Agregue xdebug.remote_autostart=On a su archivo php.ini o agregue -dxdebug.remote_autostart=On como parámetro a la llamada binaria de PHP (php -d... script.php).

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

+3

utilizo PhpStorm en Windows para mi IDE y basado en Johannes contesto que llamo mis scripts php desde al igual que 'code' php -dxdebug.remote_autostart = = En -didekey PhpStorm -dremote_host = localhost -dprofiler_enable = 1 MY_PHP_PAGE.php PARAM1 PARAM2 'code' –

+3

@Coenie Richards que debe ser: php -dxdebug.remote_autostart = On -dxdebug.idekey = PhpStorm -dxdebug.remote_host = localhost MY_PHP_PAGE.php PARAM1 PARAM2 – Tim

101

Tengo esta trabajando en Ubuntu/Netbeans por:

  • copiar las líneas Xdebug de configuración desde el archivo /etc/php5/apache2/php.ini en/etc/php5/cli/php.ini
  • establecer una variable de entorno con el nombre de la sesión de depuración (se puede obtener esta información de la cadena de consulta en la url de los netbeans página inicia cuando se inicia la depuración) para que el comando es: export XDEBUG_CONFIG="idekey=netbeans-xdebug"

Entonces, simplemente es un caso de iniciar la depuración en netbeans y hacer php myscript.php en la línea de comandos.

Nota: Si desea depurar de forma remota utilizando netbeans, necesita usar el archivo de depuración en el archivo que se ejecuta desde la línea de comandos, no en la depuración normal.

+1

+ 1 a esto, gracias @AndrewHancox. Para la depuración de las aplicaciones de la consola, también me pareció útil configurar "No abrir el navegador web" en Propiedades del proyecto → Configuración de ejecución → Avanzado ... –

+11

en Windows, debe usar 'SET XDEBUG_CONFIG = idekey = xdebug' (observe las comillas que faltan) !) – fishbone

+0

no funciona para mí, estoy usando Ubuntu 12.04 LTS y Netbeans 7.3. ¿Podría darme una pista? el uso de la interfaz gráfica de usuario funciona, pero con la consola no. Tengo un conf.d con la configuración xdebug en las carpetas apache2 y cli. También exporté la variable. – GarouDan

12

Voy a poner todo junto, el siguiente es que funciona para mí.

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 

entonces, sin ningún otro parámetro

php script.php

0

que tenía el mismo problema que mi solución era la siguiente:

En Netbeans> la ventana de proyecto> Haga clic derecho en el proyecto php> propiedades> Ejecutar configuración. Crear una nueva configuración.

llenar los valores correctos:

  • Ejecutar como "guión"
  • conjunto php intérprete
  • archivo de índice cambio en mi caso fue "cron/index.php".
0

Puede utilizar el proyecto Dephpugger si no desea configurar xDebug para su IDE (odio las configuraciones).

https://github.com/tacnoman/dephpugger

Puede ejecutar el depurador en el terminal, como IPDB para Python y byebug para Ruby.

0

que tenían el mismo problema, mi solución fue la siguiente:

  1. Medio Ambiente: Netbeans 8.2 bajo Windows (php apache +)
  2. Asumiendo que ya tiene PHP y NetBeans configurados para depurar código usando Xdebug (http://wiki.netbeans.org/HowToConfigureXDebug#Notes_on_Windows_Configuration)
  3. En NetBeans crear una nueva configuración (“Propiedades del proyecto”> “configuración Ejecutar”> “nuevo ...”
  4. En el nuevo conjunto de configuración no se abren navegador web (“Opciones avanzadas”> “Do Not cejas web abierta ER”)
  5. conjunto activo la nueva configuración creada (desplegable en la barra de herramientas)
  6. Definir punto de corte para la depuración
  7. depuración abierto (CTRL + F5)
  8. ventana Abrir terminal (‘Herramientas’>“Abrir en Terminal ")
  9. Escriba terminal: $ export XDEBUG_CONFIG =" idekey = netbeans-xdebug "(el valor" netbeans-xdebug "debe coincidir con" Herramientas ">" Opciones ">" Depuración ">" ID de sesión ")
  10. Escriba en la terminal: $ php.exe -f "C: \ Apache24 \ htdocs \ www.SiteName \ ScriptName.php" - "Arg1 = x & Arg2 = y"
  11. Seguimiento de depuración ...
Cuestiones relacionadas