8


2

PHP fastcgiとEclipseを使用したXdebugの構成?

1年以上、eclipse-pdtをxdebugおよびapacheと組み合わせて問題なく使用しています。 物事は完璧に機能し、Eclipseから(サーバーとして自分のマシンを使用して)必要なすべての対話型デバッグを実行できました。

今、私はapacheからnginxに切り替えました(したがって、PHPは現在Apacheサービスとしてではなくfast-cgiとして実行されています)、xdebugでうまく動作するようにEclipseを設定する方法を見つけることができません。 問題がxdebugにあるのか、eclipseにあるのか(またはその両方)なのかはわかりません。

Eclipse設定では、PHP設定ファイルへの参照をすでに `/ etc / php5 / cli / php.ini`に変更しました。

'' '' '

php.iniバージョン1での試み

次の `php.ini`ファイルで

zend_extension=/usr/lib/php5/20060613/xdebug.so
  • xdebugが動作していることがわかります(たとえば、 `var_dump()`を実行すると プレーンなPHPのものではなく、xdebugバージョン)

  • eclipseからのインタラクティブなデバッグはできません。ブラウザが開きます `…​?XDEBUG_SESSION_START = ECLIPSE_DBGP&KEY = …​`を含む典型的なURLでページを完全にロードしますが、プログラムの実行はブレークポイントで停止しません

  • 日食の右下に不審なメッセージが表示されます。 _ "Launching = put_the_name_of_my_project_here =:57%" _ _ "refreshing workspace" _ oneと交互になります。

'' '' '

php.iniバージョン2での試み

この他のバージョンのファイルを使用する場合(nginxに切り替えるまでは機能していました):

zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=On
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req

サイトのどのページにもまったくアクセスできません。

'' '' '

PS:私のマシンの追加データ:-* OS:* GNU / Linux-Ubuntu 9.10 64ビット。 -* PHP:* 5.2.10-2ubuntu6.3とSuhosin-Patch 0.9.7; Zend Engine v2.2.0、Copyright(c)1998-2009 Zend Technologies with Xdebug v2.0.4-* Eclipse:*スクリーンショットを参照してください。

画像:https://i.stack.imgur.com/SLFKp.png [alt text]

5 Answer


14


xdebugとFastCGIは同じデフォルトポート(9000)を使用します。 php.iniファイルのXDebugのポートを次のように変更します。

xdebug.remote_port=9001

9001を使用するようにIDE設定を更新します。


7


ボーが言ったことは正しいです(私は新しいので投票できませんでした!)。

通常、次のような行を/etc/php5/cgi/php.iniに追加する(またはphp.iniを見つける)

zend_extension = /PATH_TO/xdebug.so   ## <-- NOTE the absolute path, not relational (For ex on Windows: "C:\nginx-1.9.13\php\ext\php_xdebug-2.6.0RC2-7.0-vc14-nts.dll")
xdebug.remote_enable = on
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port = 9900        ## <-- Yours will be probly 9000 or other..

仕事をします。

そのため、変更後、

./php-fastcgi stop
./php-fastcgi start

これは私のために働きました。


2


phpを再起動してください。 php-fastcgiがあるため、nginxを再起動しても実行されないようです。 サーバー全体を再起動すると、変更が有効になりました。


1


私も同じ問題を抱えて解決しました。 +ファイル `/ etc / php5 / apache2 / php.ini`に以下を追加:

[xdebug] xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req
 +
ファイル `/ etc / php5 / cli / php.ini`に以下を追加します:
zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req
 +
Apacheを再起動します。
sudo service apache2 restart


0


ソリューションの問題は「* xdebug.remote_autostart = on 」です。 ファイル構成で設定した場合「 xdebug.remote_autostart = on *」。 これにより、Xdebugは、このサーバーで実行されるすべての要求に対してデバッグセッションを開始するようになります。デバッグセッションが必要であることを要求で指定する必要はありません。

変更が必要です

_ 「* xdebug.remote_autostart = off *」 _

そして、Webサービスを再起動します。 この例ではApacheです。

詳細はこちらをご覧ください:http://doc.waterproof.fr/phpedit/debugging_profiling/configuration/debugger_with_xdebug

がんばろう!