2010-02-28 11 views
12

He estado teniendo algunos problemas al ejecutar utilidades basadas en PHP dentro de la línea de comando desde que habilité XDebug. Se ejecuta muy bien al ejecutar secuencia de comandos a través de un navegador, pero una vez que lo intento una ejecutar una secuencia de comandos en la línea de comandos, que arroja los siguientes errores:PHP lanzando errores de XDebug SOLAMENTE en el modo de línea de comandos

h:\www\test>@php test.php 
PHP Warning: PHP Startup: Unable to load dynamic library 'E:\development\xampplite\php\ext\php_curl.dll' - The specified module could not be found in Unknown on line 0 
PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0 

h:\www\test> 

El script se ejecuta muy bien después de esto, pero es algo que pueda Parece que me abraza la cabeza. ¿Podría ser un problema de ruta dentro de mi configuración de php.ini? No estoy seguro si ese es el caso, ya que arroja el mismo error sin importar dónde acceda a la variable de entorno @php.

Además, todas las rutas dentro de mi php.ini son absolutas. No estoy seguro de lo que está pasando aquí.

+0

Esto suena como un caso de múltiples php.ini, y la interfaz CLI usa uno diferente. ¿Puedes hacer un 'phpinfo()' para ver qué archivo se usa? –

Respuesta

22

Es probable que usted está utilizando dos diferentes .ini archivos:

  • Uno de utilizado por Apache
  • y otro para CLI

O tal vez tenga el mismo problema con PHP utilizado por Apache , pero no veo esa advertencia, ya que está en el registro de errores de Apache, y es solo una advertencia.


La solución, básicamente, consiste en cargar la extensión Xdebug usando:

zend_extension=/.../xdebug.so 

en lugar de:

extension=/.../xdebug.so 

Esto es exactamente lo que el mensaje de error indica: Xdebug MUST be loaded as a Zend extension- excepto no te dice cómo hacer eso.


Nota:

  • estoy usando una ruta absoluta a xdebug.so - que ya está haciendo eso, lo cual es bueno (se requiere de todos modos)
  • pero también soy usando zend_extension: Xdebug es una extensión que se engancha profundamente en el motor Zend de PHP, lo que significa que usar extension no es suficiente.

Para obtener más información, y como referencia, consulte la página Installation/activation en la documentación de Xdebug.

+0

También tenga en cuenta, por encima y por los documentos de instalación, que debe usar 'zend_extension' no 'zend_extension_ts' para las últimas versiones de PHP. He visto zend_extension_ts recomendado en bastantes lugares. Referencia: http://xdebug.org/docs/install – RightHandedMonkey

+1

Una nota al pie para los usuarios de Windows: la ruta a xdebug debe ser una ruta completa entre comillas (por ejemplo, 'zend_extension =" C: \ Program Files \ ... "') –

Cuestiones relacionadas