web-dev-qa-db-fra.com

XDebug ne se charge pas sous Windows 7 64 bits PHP 5.4

J'ai php en cours d'exécution sur Apache. J'ai téléchargé ce que je pense être la bonne dll compilée xdebug pour php version 5.4 Windows 64 bits. J'ai activé la sécurité des threads et utilise VC9. J'ai téléchargé la dll et l'ai placée ici:

C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll

Voici ce que j'ai dans mon php.ini:

[xdebug]
zend_extension = "C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll"

Lorsque je lance Apache, j'obtiens cette erreur:

[Wed Apr 04 17:01:56 2012] [notice] Parent: Received restart signal -- Restarting the server.
Failed loading C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll
hild process is ending.
[Wed Apr 04 17:01:56 2012] [notice] Apache/2.2.22 (Win32) PHP/5.4.0 configured -- resuming normal operations
[Wed Apr 04 17:01:56 2012] [notice] Server built: Jan 28 2012 11:16:39
[Wed Apr 04 17:01:56 2012] [notice] Parent: Created child process 2120
[Wed Apr 04 17:01:57 2012] [notice] Child 2120: Child process is running
[Wed Apr 04 17:01:57 2012] [notice] Child 2120: Acquired the start mutex.
[Wed Apr 04 17:01:57 2012] [notice] Child 2120: Starting 64 worker threads.
[Wed Apr 04 17:01:57 2012] [notice] Child 5624: Released the start mutex
[Wed Apr 04 17:01:58 2012] [notice] Child 5624: All worker threads have exited.
[Wed Apr 04 17:01:58 2012] [notice] Child 5624: Child process is exiting
Failed loading C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll
17
Jon Hargett

OK, ça marche maintenant et je pense savoir ce qui n'allait pas. J'utilisais la version 64 bits de PHP, mais la version 32 bits d'Apache et la version 64 bits de xdebug. J'ai recommencé et utilisé Apache 2.4 32 bits, car il ne semble pas exister de version 64 bits avec le module php5. Donc, je me suis assuré d'avoir la version 32 bits de tout. J'utilise php5.4 avec VC9, Thread Safe.

Ce billet de blog a contribué à l’installation: http://lifeofageekadmin.com/how-install-Apache-2-4-php-5-4-and-mysql-5-5-21- sur-windows-7/

18
Jon Hargett

Afin de vous assurer que vous avez téléchargé le bon binaire, vous pouvez utiliser l’assistant à l’adresse http://xdebug.org/wizard.php Il vous dira exactement quel fichier télécharger et dans quel php.ini Dans ce fichier, vous devriez mettre la ligne zend_extension (vous utilisez le bon, bien sûr, car vous obtenez l’erreur "Failed to load").

52
Derick

En suivant les instructions du site Web de xdebug, j’ai utilisé l’assistant et téléchargé le fichier dll dans le répertoire 'ext'. L'assistant m'a ensuite dit d'ajouter cette ligne à mon fichier php.ini: zend_extension=ext\php_xdebug-2.3.3-5.6-vc11.dll

Cela m'a donné l'erreur vue ci-dessus: Failed loading ext\php_xdebug-2.3.3-5.6-vc11.dll

J'ai également essayé de remplacer la barre oblique inverse par une barre oblique, mais cela a échoué avec le message suivant: Failed loading ext\ext/php_xdebug-2.3.3-5.6-vc11.dll

En regardant ce dernier message, je pensais que le répertoire d’extensions posait problème, et j’ai vu que dans mon fichier php.ini se trouvait cette ligne: extension_dir = "ext"

J'ai donc changé pour utiliser: zend_extension=php_xdebug-2.3.3-5.6-vc11.dll Et cela a fonctionné !!

12
Chris

OK, je sais qu’il s’agit d’un très vieux fil de discussion zombie, mais après avoir traversé moi-même ce problème récemment, il s’est avéré qu’il disposait d’une solution triviale.

PHP.INI nécessite l'utilisation de barres obliques pour les répertoires, alors que les instructions d'installation de XDebug sous Windows utilisent des barres obliques inverses. SO pour le problème original ci-dessus, la solution consiste à modifier la ligne zend_extension comme suit:

zend_extension = "C: /php5/extras/php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll"

J'espère que cela t'aides.

4
Dave S.

dans la dernière version de xampp, vous devez uniquement ajouter zend_extension=xdebug à php.ini, par exemple:

zend_extension=xdebug
[XDebug]
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_Host = "127.0.0.1"
xdebug.trace_output_dir = "c:\xampp\php"
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_connect_back=on
xdebug.remote_port=9000
xdebug.remote_mode=req
xdebug.idekey="PHPSTORM"
3
DolDurma

Regardez dans C:\php5\ext et voyez si php_xdebug.dll y est déjà. Sinon, essayez de renommer php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll en php_xdebug.dll et de le placer dans C:\php5\ext, puis modifiez votre addition php.ini en:

[xdebug]
zend_extension = "C:\php5\ext\php_xdebug.dll"
1
Xenon

J'ai Windows 7 64bit et php v5.4.4, mais la version de x-debug que je dois télécharger est la suivante:

PHP 5.4 VC9 (32 bits) (MD5: ffeb0215621d330fa53b249f0930ffae)

parce que IIS ne peut pas fonctionner avec xdebug 64bit

aussi mes instructions php.ini: 

[Xdebug]
zend_extension="C:\Program Files (x86)\iis express\PHP\v5.4\ext\php_xdebug-2.4.0rc4-5.4-vc9-nts.dll"
xdebug.remote_enable=1
xdebug.remote_Host=127.0.0.1
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "C:\temp\php"
xdebug.profiler_output_dir="C:\temp\php"
0
Lev K.

Avait le même problème. Pour moi, j'avais besoin du chemin absolu pour zend_extension, entre guillemets (mais les barres obliques inverses sont correctes).

0
felixfbecker