web-dev-qa-db-ja.com

リモートPHP NetbeansおよびXDebugを使用したデバッグ

次のシナリオでXDebugを使用しようとしています

  • Netbeans7.1.1を使用するWindows7の物理ホスト
  • Ubuntu上の仮想ゲスト、ApacheサーバーとPHP 5.3.10
  • PHP私のウェブサイトのコードはUbuntuの共有フォルダー、/ var/www/mysiteにあります
  • PHPコードは、Windowsホストから\\ guestIP\mysiteにあり、R/W権限でアクセスできます。
  • ホストとゲストの両方から http://mysite.local.fr からアクセス可能なWebサイト

Windowsホストから\\ guestIP\mysiteを指すNetbeansプロジェクトを作成しました。プロジェクトの実行構成には、次のものがあります。

  • 実行:ローカルWebサーバー
  • プロジェクトURL: http://mysite.local.fr
  • インデックスファイル:index.php(プロジェクトに存在します)

高度な実行構成の場合:

  • 「毎回尋ねる」にチェックを入れました(「聞かないで」を使って、自分でセッションキーでブラウザを起動してみました)
  • マッピングに '/ var/www/mysite'-\\ GuestIP\mysiteを設定してみました(そして何も使用しませんでした)
  • プロキシ設定に触れていません

UbuntuVMのphp.iniに次のものがあります

xdebug.remote_enable = on
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = /tmp
;xdebug.remote_Host=localhost,<HostIP>, mysite.local.fr
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
xdebug.idekey="netbeans-xdebug"
xdebug.remote_mode=req

これはいずれも機能しません。NetbeansはWindowsからのブレークポイントで停止しません。

Netbeansを使用した私のVMからの直接デバッグは正常に機能します。

誰かが私のデバッガーをWindowsからリモートで動作させる方法を教えてもらえますか?ありがとう

13
David

申し訳ありませんが、もうコメントできません。 @David @ JamesB41:私もこれを探していました。私のセットアップは、NetBeans7.1を搭載したWindows7ホストであり、VirtualBoxにUbuntu VM)があります。NetBeansプロジェクトをリモートプロジェクトとしてセットアップし、SFTPを使用してアップロードおよびダウンロードします。

次の設定は私にとってはうまくいきます。ホストのIPをremote_Hostとして使用し、VMがそれを認識できることを確認してください。

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_Host=10.217.165.193
xdebug.remote_port=9000
xdebug.remote_log="/tmp/log/xdebug.log"

NetBeansはエントリポイントブレークポイントで停止します(PHP->デバッグでオプションが設定されている場合)。 ただし、VMのファイルから実行されるため、NetBeansによって作成されたブレークポイントで停止することはありません。ただし、xdebug_break()を使用すると、スタックと変数が表示されます。 プロジェクト設定>設定の実行>詳細設定でフォルダを正しくマップすると、NetBeansブレークポイントで停止し、強調表示されます。驚くばかり。私は完全です。

connect_back configは役に立たなかったようです。おそらく、$ _ SERVER ['REMOTE_ADDR']が設定されていないためです。)

15
Ethan

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

3

これは古いことですが、良い思い出になります。 virtualboxでnatを使用している場合は、xdebugポートのポート転送をローカルマシン(通常はデフォルトで9000)に戻すように設定していることを確認してください。

1
John

すべてが正しいように見えても、netbeans内から「WaitingFor Connection」が表示される場合は、php.ini設定で試してみてください。

xdebug.remote_connect_back=on

任意のIPからの接続を許可するか、問題に関する詳細情報を確認してください http://www.devside.net/wamp-server/netbeans-waiting-for-connection-netbeans-xdebug-issue ==

0
GiorgosK

別のオプションは、VMが独自のlocalhost:9000(xdebugのデフォルト)と通信するように構成してから、ホストからVM)にSSHで接続し、そのポートのポートトンネルをホストマシンに戻します。その後、ホストマシンデバッガーはlocalhost:9000に接続するだけで、すべてが同じマシンで実行されているかのように正確に機能するはずです。

参照: 複数のユーザーXDebugおよびPHPデバッグ

0
troelskn

Linux + Apache + PHP + xdebug + NetBeans(SFTP)を使用したリモートデバッグ

私は次の設定を持っています、そしてそれは働きます。

ホストPC(クライアント)

  • Linux Debian Jessie **
  • NetBeansバージョン8.0.2
  • NetBeansには、「リモートサーバーからのPHPアプリケーション」として作成されたプロジェクトがあり、デバッグする必要があります。
  • NetBeansはSFTPを使用してリモートサーバーに接続します
  • IP(例):192.168.0.2

** OPの質問でWindowsについて言及していることは承知していますが、これを解決するためのメインセットアップはVMで行う必要があることに関して、とにかく誰かに役立つことを願っています。

ゲストPC(サーバー)/仮想マシン

  • Linux Debian Jessie
  • Apache
  • PHP 5.6
  • xdebug 2.2.5
  • IP(例):192.168.0.1

「ゲストPC(サーバー)/仮想マシン」で次の手順を実行する必要があります

  1. xdebugをインストールしますSudo apt-get install php5-xdebug
  2. 編集/etc/php5/Apache2/php.ini

[Date]の直前にこれらの行を追加し、xdebug.remote_Hostを変更して「ホストPC(クライアント)」IPを反映します。

[debug]
; Remote settings
xdebug.remote_autostart=off
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_Host=192.168.0.2
xdebug.remote_port=9000
  1. apacheを再起動しますSudo service Apache2 restart

参照

XDebugの構成方法-リモートデバッグ http://wiki.netbeans.org/HowToConfigureXDebug#Remote_Debuging

リモートマシンでプロパティxdebug_remote.Hostを正しく構成する必要があります。ローカルマシンのIPアドレスは、このプロパティで定義する必要があります。たとえば、192.168.0.2にインストールされているNetbeansを使用して、リモートマシン192.168.0.1でソースコードをデバッグするとします。 192.168.0.1のxdebug.remote_Hostをxdebug.remote_Host = 192.168.0.2に変更する必要があります。動作しない場合は、xdebug.remote_portで構成されているポートが両方のマシンで開いていることを確認してください。

0
Dmytro Dzyubak