web-dev-qa-db-ja.com

Windows 7 64ビットでXDebugがロードされないPHP 5.4

Apacheでphpを実行しています。 PHPバージョン5.4 64ビットウィンドウ用の正しいxdebugコンパイル済みdllと思われるものをダウンロードしました。スレッドセーフを有効にしていて、VC9を使用しています。私はdllをダウンロードしてここに配置しました:

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

これが私のphp.iniにあるものです:

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

Apacheを起動すると、次のエラーが発生します。

[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
20
Jon Hargett

OK、現在は機能しており、何が問題だったのかはわかっていると思います。 64ビットバージョンのPHPを使用していましたが、32ビットバージョンのApacheと64ビットバージョンのxdebugを使用しています。最初からやり直して、Apache 2.4 32ビットを使用しました。 php5モジュールで64ビットバージョンになっているので、32ビットバージョンのものがすべてあることを確認しましたphp5.4をVC9、スレッドセーフで使用しています。

このブログ投稿は、設定に役立ちました: http://lifeofageekadmin.com/how-install-Apache-2-4-php-5-4-and-mysql-5-5-21-on-windows -7 /

19
Jon Hargett

正しいバイナリをダウンロードしたことを確認するには、ウィザードを http://xdebug.org/wizard.php で使用できます。これにより、ダウンロードするファイルとダウンロードするファイルが正確にわかりますphp.iniファイルにはzend_extension行を挿入する必要があります(もちろん、「ロードに失敗しました」エラーが表示されるため、正しい行を使用しています)。

54
Derick

ようやくこれが機能しました。 xdebug Webサイトの指示に従って、ウィザードを使用してdllファイルを「ext」ディレクトリにダウンロードしました。ウィザードは、この行をphp.iniファイルに追加するように指示しました:zend_extension=ext\php_xdebug-2.3.3-5.6-vc11.dll

これにより、上記のエラーが発生しました:Failed loading ext\php_xdebug-2.3.3-5.6-vc11.dll

また、バックスラッシュをスラッシュに置き換えてみましたが、次のメッセージで失敗しました:Failed loading ext\ext/php_xdebug-2.3.3-5.6-vc11.dll

その最後のメッセージを見て、おそらく拡張ディレクトリが問題を引き起こしていると思い、php.iniファイルに次の行があることがわかりました:extension_dir = "ext"

だから私は使用するように変更しました:zend_extension=php_xdebug-2.3.3-5.6-vc11.dllそして、それはうまくいった!

13
Chris

最新バージョンのxamppでは、追加する必要があるのはzend_extension=xdebugphp.ini、 例えば:

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"
5
DolDurma

OK、これは本当に古いゾンビスレッドであることはわかっていますが、最近この問題を自分で経験したので、簡単な解決策があることがわかりました。

PHP.INIでは、ディレクトリにスラッシュを使用する必要がありますが、WindowsにXDebugをインストールするための手順では、バックスラッシュを使用しています。 SO上記の元の問題の場合、解決策はzend_extension行を次のように変更することです。

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

お役に立てれば。

4
Dave S.

C:\php5\extを見て、php_xdebug.dllがすでにそこにあるかどうかを確認してください。そうでない場合は、php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dllの名前をphp_xdebug.dllに変更してC:\php5\extに配置し、php.iniの追加を次のように変更してください。

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

私はWindows 7 64ビットとphp v5.4.4を持っていますが、ダウンロードする必要があるx-debugのバージョンは次のとおりです。

PHP 5.4 VC9(32ビット)(MD5:ffeb0215621d330fa53b249f0930ffae)

IISはxdebug 64ビットでは機能しないため

また、私の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.

同じ問題があった。私にとっては、引用符で囲んだzend_extensionの絶対パスが必要でした(ただし、円記号は問題ありません)。

0
felixfbecker