web-dev-qa-db-ja.com

NetBeansとXdebugを使用してPHPをデバッグする方法

私は最近、IDE Smashingマガジンによるレビューで非常に高く評価された後、 Netbeans 6.5を使用しようとしました。 http://www.smashingmagazine .com/2009/02/11/the-big-php-ides-test-why-use-oneand-which-to-choose /

Notepad ++から切り替える主な理由は、コードをデバッグして設定できるようにしたいからです。

ベンダー http://xdebug.org/ とnetbeansWebサイトの両方からxdebugをインストールする方法についての指示に従いました。 http://www.netbeans.org/kb/docs/php/debugging.html#gettingReady しかし、役に立たない。

それはどのように行われていますか、他の誰かがNetBeansでデバッグを行っていますか?

(私のセットアップは次のとおりです:Windows XP、Wampサーバー2.0、PHP 5、Netbeans 6.5.1)

15
Jon Winstanley

それ以来、Mod_rewriteとcURLをインストールした場合、WAMPはXdebugに対応できないことがわかりました。

これは既知のエラーであり、毎回クラッシュします。

http://phphints.wordpress.com/2008/10/24/wampserver-phpini-settings-for-use-with-xdebugdll-pear-and-silverstripe-cms-framework/

残念ながら、私もこれら2つのライブラリを使用しています。

5
Jon Winstanley

Php.iniに次の行を追加することが重要です。

xdebug.idekey="netbeans-xdebug"

注:NetBeansで、「設定」に移動し、xdebugが設定されている場所を確認します。そのセッションIDを探します。私の場合はnetbeans-xdebugでした。

11
openfrog

うーん、私にとって、netbeansはphpデバッグが箱から出して機能していた最初のアイデアでした。

Xdebugはphpinfoに表示されますか?もしそうなら、それはデフォルト設定で動作するはずです。必要なのは次のとおりです。

xdebug.remote_enable=on

したがって、これが有効になっていない場合は、php.iniファイルに入れて、Apacheを再起動すると、デバッグが機能するはずです。

そうでない場合、あなたは私があなたを助けるためにもっと多くの情報を提供しなければならないでしょう。

sy

6
deresh

Xdebugがcurlまたはmod_rewriteで問題を引き起こすことは既知の問題ではありません。私が知っている唯一の問題は、Vista上のXdebugに関するものです。

3
Derick Rethans

ここで確認できます: http://ruilima.com/2010/11/ambiente_de_desenvolvimento_php_netbeans_xdebug/ はポルトガル語ですが、Ubuntu 10.10、netbeans、php、mysql、xdebug、使用する準備ができて。見てください

2
Rui

Netbeansでは、プロジェクトのwebrootパスをapp/webrootに設定する必要があることがわかりました。これを行うと、デバッグは問題なく機能します。

1
RaScoop

Windowsでxamppを使用している場合:

php.iniファイルを開いて、これら2行を変更するだけです。

;xdebug.profiler_enable = 0
;zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

xdebug.profiler_enable = 1
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

(注意:xamppバージョンが古い場合は、 http://xdebug.org/download.php からダウンロードする必要があります。OSが64ビットであっても32ビットをダウンロードしてください。たとえば、xdebugの名前はダウンロードされたのはphp_xdebug-2.2.1-5.4-vc9.dllです。最初にphp_xdebug-2.2.1-5.4-vc9.dllをディレクトリCにコピーします。\xampp\php\ext \の場合、2行目はzend_extension = "C:\xampp\php\ext\php_xdebug-2.2.1-5.4-vc9.dllになります)

その後、Apacheを停止して再開します。それだけです。

1
macio.Jun

同じサイトで同じ問題の解決策が見つかりました PHP Netbeans:xdebugはすべてのinclude()またはrequire()で停止します

0
user473445

NetBeansを使用したリモートデバッグについては、以下のドキュメントを参照してください。 http://stuporglue.org/setting-up-xdebug-with-netbeans-on-windows-with-a-remote-Apache-server/

0

http://wiki.netbeans.org/HowToConfigureXDebug に移動します。あなたが従うべきステップの大きなリストがあります、それはあなたを助けるかもしれません。

ただし、ほとんどの場合、xdebug-binaryの新しいバージョンが必要です。 http://xdebug.org/wizard.php にアクセスして、必要なバイナリと問題が解決される可能性があるかどうかを確認してください。

0
Pascal Klein

Ubuntuでnetbeansを実行しているとき、私もこの問題に直面していました。インターネットで見つかったすべてのソリューションを試したようですが、すべて無駄でした。

最終的に助けになったのは、Sudoコマンドでnetbeansを実行することだけでした。通常のユーザーには、ポート9000(またはその他)でリッスンする権限がなかったようです。

Sudo netbeans &

...そして出来上がり、私は再びデバッグすることができます!多分それはあなたに1日か2日節約するでしょう

0

[xdebug]の下の元の行を次のように置き換えてwamp2.2を使用してWindows8でxdebugを動作させるために3時間を無駄にした後の動作

    zend_extension = "c:/wamp/bin/php/php5.3.13/zend_ext/php_xdebug-2.2.0-5.3-vc9.dll"
    ;make sure path of your own php_xdebug, dll version may vary.

    [xdebug]

    xdebug.remote_enable = on
    xdebug.remote_handler=dbgp
    xdebug.remote_Host=localhost
    xdebug.remote_port=9000
;recheck your port number in netbeans [Tools=>options=>php=>debugging there it is: debugging port]
    xdebug.profiler_enable = on
    xdebug.profiler_enable_trigger = on
    xdebug.profiler_output_name = cachegrind.out.%t.%p
    xdebug.profiler_output_dir = "c:/wamp/tmp"

次に、タスクバーのwampアイコンをクリックして、「すべてのサービスを再開」します。

さて..今最後のステップ>>管理者としてNETBEANSを開始するwindows8のホリーソウル私はあなたが嫌い​​です:<

0
Danish Kayani

デバッガーを実行するたびにApacheがクラッシュするという問題が発生している場合(これは私が持っていたものであり、非常に迷惑です)。 xamppを再インストールし、xdebugを再設定したと確信しています。問題は、php.iniでzend-debuggerが奇妙に設定されていて、正しいphp.iniを変更していないことに関係していると思います。

最終的に、再インストールしてリセットした後、正常に動作するようになりました。

Xdebugを使用してネットワークデバッグを行ったNetbeansの開発リリースを実行しているので、開発サーバーからすべて実行します。

幸運を祈ります。NetBeansを使用してxdebugを設定する方法に関する適切なドキュメントは特にありません。

0
Joel

NetBeansとXDebugで時折問題が発生しましたが、デバッグ中のコードとは関係のないWatchステートメントが配置されていました。

この場合、デバッガーはソケット例外で失敗します。

これが問題の原因であることがわかった場合は、時計をすべて取り外してください。一般的に、XDebugは非常に便利であることがわかりました。

しかし、これはあなたがここで抱えている問題とは関係がないかもしれないことを私は理解していますが、それは知っておく価値があります。

0
Ian Lewis

よくやったことは、忘れていた

[xdebug]

php-iniのセクションヘッダーとして。そしてもちろん、別のセクションが始まる直前([Date]や[iconv]など)にコンテンツを「パーク」します。そうしないと、誤って間違ったセクションに配置されてしまいます。 (php.iniのコメントdjungleでは、これは簡単に発生します。)

0
Frank Nocke

私の場合、すでにaeagent.exeと呼ばれているポート9000を使用していたのは、私のマシン(Windows 7)で実行されているプロセスでした。

Php.iniの設定を「xdebug.remote_port = 9001」に変更し、netbeansに対応する変更を加えてから、Apacheを再起動しました。今では動作します。

SysInternalsTCPViewツールに感謝します。

0
Josh