3

NetBeans7.1からPHPをデバッグしたい。私のWebサーバーはIISです。まず、NetBeansがXDebugを使用してダウンロードし、DLLを適切なフォルダにコピーしようとしていることを発見しました。それを正しく設定する方法を知りたいです。

オンラインのphpconfigアナライザーから次のアドバイスがありました。

  1. php_xdebug-2.1.4-5.3-vc9-nts.dllをダウンロード
  2. ダウンロードしたファイルをC:\ Program Files \ PHP \ v5.3\extに移動します
  3. C:\ Program Files \ PHP \ v5.3 \ php.iniを編集して、行を追加します
  4. zend_extension = C:\ Program Files \ PHP \ v5.3 \ ext \ php_xdebug-2.1.4-5.3-vc9-nts.dll

Webサーバーを再起動します

わかりました。php.iniのどのセクションに行を入れるかを除いて、すべてが明確です。疑わしいです。

一方、Netbeansは次のように不満を述べています。

xdebugからの接続が224秒以内に検出されませんでした。その理由は、xdebugがインストールされていないか、適切に構成されていないことが原因である可能性があります。php.iniファイルに次のエントリが含まれていることを確認してください。

xdebug.remote_enable = on

xdebug.remote_handler = dbgp

xdebug.remote_host = localhost(またはホスト名)

xdebug.remote_port = 9000

繰り返しますが、php.iniのどのセクションにこれらの行を配置しますか?

4

5 に答える 5

2

xdebug行は、おそらく最後にphpiniファイルのどこにでも追加できます。xdebugが正しくインストールされているかどうかを確認するには、phpinfo関数とdebugclientを確認してください。デバッグクライアントは、xdebugホームページ(http://xdebug.org/docs/install )で入手できます。スイッチ-i9000-r 9000で起動すると、xdebugに接続され、netstat-an|で確認できます。grep9000。次に、サンプルWebページをロードして、debugclientの出力を確認できます。念のため、xdebugログを確認してください。それがdebugclientで動作するとき、あなたは良い証拠を持っており、あなたはそれをあなたのIDEで動作させることができます。これは私に大いに役立ちます:http://forums.netbeans.org/topic1513-30.html。xdebugがポート9000をリッスンしている場合は、次のスクリプトを確認することもできます。

<?php 
     $address = '127.0.0.1'; 
     $port = 9000; 
     $sock = socket_create(AF_INET, SOCK_STREAM, 0); 
     socket_bind($sock, $address, $port) or die('Unable to bind'); 
     socket_listen($sock); 
     $client = socket_accept($sock); 
     echo "connection established: $client"; 
     socket_close($client); 
     socket_close($sock); 
?>

それは私にはうまくいきませんでしたが、試してみませんか?仮想マシンでlighttpdとxdebugを使用し、リモートサーバーでリバースシェルを使用しています。KomodoIDEを使用しています。

于 2012-05-01T19:23:20.403 に答える
2

ファイルのどこにでも追加できます。「拡張子」、「.so」、または「.dll」を検索すると、php.ini ファイルに例が見つかるはずです。私は Windows にはあまり詳しくありませんが、Linux では、ターミナルに「php -m」と入力すると、現在ロードされているすべてのモジュールが一覧表示されます。Xdebug は、PHP の下で 1 回、Zend の下で 1 回、合計 2 回リストする必要があります。

; php -m

出力 ...

[PHP Modules]
mysql
mysqli
curl
xdebug

[Zend Modules]
xdebug

これを解決するために確認できるいくつかのことは、Web ページに phpinfo() を出力し、編集中の php.ini がロードされているものであることを確認することです。「デフォルト構成ファイル」の下にリストされています

また、サーバーを再起動した後。サーバー ログをチェックして、構成ファイルにエラーがないことを確認します。

Netbeans で xDebug を実行していますが、エラー メッセージで提供される構成を使用していません。.ini ファイルに 1 行だけ追加しました。

zend_extension=<path_to_extension>/xdebug.so

Zend 拡張機能 (少なくとも私のセットアップでは) にはフル パスが必要なので、パスがフル (あなたのもののように見えます) であり、正しいことを確認してください。

「extension_dir」の下のphpinfoにリストされているデフォルトの拡張機能フォルダーに拡張機能を配置することもできます。

于 2012-05-01T19:28:56.210 に答える
0

php.ini で xdebug を試してもうまくいかなかった場合、私は同じ問題を抱えていました。オンライン ヘルプを読んでも役に立ちませんでした。後で、URL に間違ったアドレスが表示されていることに気付きました。

localhost/todolist/web/web/index.php?XDEBUG_SESSION_START=netbeans-xdebug

あるべき時

localhost/todolist/web/index.php?XDEBUG_SESSION_START=netbeans-xdebug

私はそれを修正し、それを機能させました。

于 2012-06-13T15:18:14.280 に答える
0

私は同様の問題を抱えていました.PHP -Mを実行するというJ.Moneyのアドバイスのおかげで、パスにスペースが含まれているため、二重引用符で囲む必要があるという問題を解決しました。

解決するには、変更することです:

zend_extension = C:\Program Files\PHP\v5.3\ext\php_xdebug-2.1.4-5.3-vc9-nts.dll

に:

zend_extension = "C:\Program Files\PHP\v5.3\ext\php_xdebug-2.1.4-5.3-vc9-nts.dll"

これもバグとして記録しました:http://bugs.xdebug.org/view.php?id=922

于 2013-02-09T14:36:25.037 に答える