2010-02-28 6 views
12

J'ai eu quelques problèmes en cours d'exécution des utilitaires basés sur PHP dans la ligne de commande depuis que j'ai activé le XDebug. Il fonctionne très bien lorsque l'exécution du script via un navigateur, mais une fois que je tente une exécution d'un script sur la ligne de commande, il jette les erreurs suivantes:PHP lançant des erreurs XDebug SEULEMENT en mode ligne de commande

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> 

Le script exécute très bien après, mais il est quelque chose que je peux ne semble pas envelopper ma tête autour. Serait-ce un problème de chemin dans ma configuration php.ini? Je ne suis pas sûr si c'est le cas considérant qu'il jette la même erreur, peu importe où j'accède à la variable d'environnement @php.

De plus, tous les chemins dans mon php.ini sont absolus. Pas vraiment sûr de ce qui se passe ici.

+0

Cela ressemble à un cas de plusieurs php.ini, et l'interface CLI en utiliser un autre. Pouvez-vous faire un 'phpinfo()' pour voir quel fichier est utilisé? –

Répondre

22

Il y a des chances que vous utilisez deux fichiers .ini différents:

  • Un pour utilisé par Apache
  • Et un autre pour CLI

Ou peut-être vous avez le même problème avec PHP utilisé par Apache , mais ne voyez pas cet avertissement, car il se trouve dans le journal des erreurs d'Apache - et ce n'est qu'un avertissement.


La solution, au fond, est de charger l'extension Xdebug en utilisant:

zend_extension=/.../xdebug.so 

au lieu de:

extension=/.../xdebug.so 

C'est exactement ce que le message d'erreur indique: Xdebug MUST be loaded as a Zend extension- à l'exception ça ne vous dit pas comment faire ça.


Note:

  • J'utilise un chemin absolu xdebug.so - vous faites déjà, ce qui est agréable (il est nécessaire de toute façon)
  • Mais je suis aussi en utilisant zend_extension: Xdebug est une extension qui se connecte profondément dans le moteur Zend de PHP, ce qui signifie que l'utilisation de extension n'est pas suffisante.

Pour plus d'informations, et à titre de référence, voir la page Installation/activation dans la documentation de Xdebug.

+0

Notez également ci-dessus et par les documents d'installation que vous devez utiliser 'zend_extension' et non pas 'zend_extension_ts' pour les dernières versions de PHP. J'ai vu zend_extension_ts recommandé dans plusieurs endroits. Référence: http://xdebug.org/docs/install – RightHandedMonkey

+1

Note de bas de page pour les utilisateurs de Windows: le chemin d'accès à xdebug doit être un chemin complet entre guillemets (par exemple: 'zend_extension =" C: \ Program Files \ ... "') –

Questions connexes