6

PHP 5.3.0 を含む最新の XAMPP パッケージをインストールしました。Xdebug を有効にしようとしていますが、うまくいきません。

XAMPP に同梱されている php.ini で変更した内容は次のとおりです。

; uncommented
zend_extension = "X:\xampp\php\ext\php_xdebug.dll"

; added the following lines:
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

Apache は問題なく起動しますhttp://localhost/が、ブラウザで開くと次のエラーが表示されます。

代替テキスト

ボタンをクリックするClose the programと、無限ループにあるかのようにエラー メッセージがすぐに再表示されます。これを機能させるための助けをいただければ幸いです。

Windows 7 Ultimate 64 ビットの新規インストールを実行しています。

編集: phpinfo() の結果から:

Zend Extension Build    API220090626,TS,VC6 
PHP Extension Build     API20090626,TS,VC6 
Debug Build             no 
Thread Safety           enabled
4

6 に答える 6

4

Xdebug のバージョンが間違っている可能性があります。phpinfo()を見て、そこにある情報をXdebug dllのさまざまなバージョンと比較します。

具体的には、「スレッド セーフ」が有効になっているかどうかを確認する必要があり、VC6 でコンパイルされた PHP を実行しているか、VC9 を実行しているかを知る必要があります (Apache を使用している場合は、VC6 が必要であることがほぼ保証されます)。

于 2009-12-14T23:08:08.377 に答える
3

XDEBUG のカスタム インストール ウィザードを試したことがありますか。php インストールを分析し、従う必要がある正確な手順を提供します。

Windows バイナリは通常、上記の PHP バージョンのすべてのミニ リリースで機能しますが、拡張機能はその時点で最新の PHP バージョンに対して構築されています。VCx マーカーは、拡張機能がビルドされたコンパイラと、ZTS が無効になっているかどうかを非スレッド セーフで示します。これらの修飾子は、使用している PHP のバージョンと一致する必要があります。どれが必要かわからない場合は、カスタム インストール手順を参照してください。

http://xdebug.org/wizard.php

phpinfo 出力をテキスト ボックスに貼り付けるだけで、php に必要な正確な xdebug dll を取得できます。

于 2012-09-02T10:13:36.437 に答える
2

率直に言って、私も 2 日間非​​常に悪い日を過ごしましたが、最終的に何が修正されたのか今はわかりません。

; this is the thread safe version,
; the absence of _nts_ in the dll name 'shows' this
; do not use _ts, your library won't get registered and won't show in phpInfo()
zend_extension = "D:/wamp/bin/php/php5.3.8/zend_ext/php_xdebug-2.1.2-5.3-vc9-x86_64.dll"

php.ini を確認し、すべての値が (到着) した場合は phpinfo() を確認してください

xdebug.remote_enable = on
xdebug.remote_handler=dbgp
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
; if you have multiple virtual hosts ( like 'local.fooclient' )
; maybe using the IP is safer (for any same-machine-debugging)
xdebug.remote_host=127.0.0.1
; maybe a -much- lower port helped, 84 was free. use netstat to figure out.
xdebug.remote_port=84
; idekey! also see note below
xdebug.idekey=netbeans-xdebug

その他の落とし穴:

Web 上で xdebug.remote_handle (r なし) のタイプミスを数回見ました。注意してください。

idekey に関する注意: 上記の idekey は phpinfo() でマスター値として表示されましたが、MYMACHINENAME$ のような「ローカル値」で上書きされました。==> DBGP_IDEKEY という名前のグローバル環境変数を (コンピューターのプロパティで) 設定し、(また) netbeans-xdebug を再起動 (または単にログアウト) すると役立ちます! 再度: phpInfo() で再確認してください。有効になりました。

もちろん、netbeans-menu:options->php タブ->debugging セクションをこのポートとセッション ID に調整します。

通信しようとしているポートが開いているかどうかを (php を使用して) チェックするスクリプトを次に示します。(さらに下のコメントも、画像から入力するのが面倒な人のために)

ブラウザーが接続できるように、(フラストレーションの中で) 常にデバッグ開始の get-argument をアタッチすることを忘れないでください。

  http://localhost/myTest.php?XDEBUG_SESSION_START=netbeans-xdebug

ポートフロンティアでは、このツールも役立つかもしれません。

VC6 と VC9 でコンパイルされたすべてのバージョンを別々に保持していることを 4 重にチェックします。

コマンド ラインから実行するwhatever/path/php.exe myTest.phpと (上記の設定が完了したら)、追加のエラーが表示される場合もあります (間違った dll をいじっていたときに表示されました)。

http://www.wampserver.comをお勧めします (個人的な理由から、人気のある xampp パッケージよりも適しています...)

于 2011-10-12T13:00:44.610 に答える
0

xdebugがXAMPPではなく、PHP(32ビット、TS、VC6、C:\ Program Files(x86)\ PHP)およびWindows 7(64ビット)のApache(32ビット)でインストールされている場合、php.iniで指定する必要がありますのようなプログラムファイルのx86フォルダへのフルパス。

zend_extension="C:\Program Files (x86)\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll"

ではなく

zend_extension="C:\Program Files\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll"

これは私の間違いでした。x86フォルダーに変更すると、xdebugが完全に機能し始めました。これもお役に立てば幸いです。

于 2011-05-22T03:02:05.957 に答える
0

はい、既知の問題があります。Xdebug を最新の Xampp および 64 ビット Vista/Win 7 で動作させることはほとんど不可能です。

多くのユーザーがそれについて不平を言っていると報告されたバグがあります。

解決策はXampp の最新のベータ版のようです。バージョン 2.0.6 (dev) の xdebug が含まれており、問題なく動作しています。

64 ビット Vista で約 10 日間テストしましたが、まだ問題は発生していません。

于 2009-12-15T09:01:48.737 に答える
0

他の人が言ったように、xdebug のバージョンと php のバージョンを一致させる必要があります。

PHP のバージョン番号、スレッド セーフ、およびコンパイラは既に一致しています。

まだ理解していない場合 (これは古いスレッドです)、不足しているのは INI 構成です。スレッド セーフなモジュールをロードする場合は、次の行を使用する必要があります。

zend_extension="C:\Path\To\The\Extension.dll"

モジュールがスレッド セーフでない場合は、使用しようとしていた INI ディレクティブを使用します。

これは zend_extension にのみ適用され、通常の拡張機能には適用されません。

于 2010-02-08T22:37:30.223 に答える