まず、Netbeans と XDebuug に関する別の投稿でインターネットを詰まらせたことをお詫びしますが、XDebug を Windows 7 から私の開発マシンにリモートで接続して動作させることを 2 週間試みた後、他に方法がありません。参考までに、私はこの問題について広範な調査を行いましたが、読むべき質の高い検索結果が不足しています。
要約すると、デバッガーをアタッチしようとすると、「127.0.0.1:9000 にアタッチしています\r\n接続が拒否されました。」というメッセージが表示されます。
詳細は、/etc/php5/apache2/xdebug.ini の下にある私の XDebug.ini ファイルです。
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable = on
xdebug.remote_autostart = off
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.remote_server = localhost
xdebug.remote_mode = req
xdebug.idekey = netbeans-xdebug
output_buffering = off
xdebug.remote_log = "/var/log/xdebug.log"
私のシステム仕様は次のとおりです。
私のノートパソコン:
- ウィンドウズ7
- ネットビーンズ 7.4
- デバッグ ブラウザ: Chrome バージョン 30.0.1599.101 m
私のサーバー:
- Linux デビアン Ubuntu 11.10
- PHP 5.3.6-13ubuntu3.10
- Zend Engine v2.3.0、Copyright (c) 1998-2011 Zend Technologies with Xdebug v2.2.3、Copyright (c) 2002-2013、by Derick Rethan [php_info() で動作確認済み]
接続しようとしている方法:
Stuporglues チュートリアルに従って、ポート 9000 で実行するように xdebug と netbeans を構成しました (xdebug.ini および netbeans->tools->options->php->debugging の下)。 (9000/127.0.0.1:9000)。
Linux サーバーがリッスンしていることがわかります。
james@XXX:/$ netstat -a -n | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
tcp6 0 0 ::1:9000 :::* LISTEN
ファイルをデバッグしようとすると、Netbeans がポート 9000 でリッスンしていることがわかります
netstat -aon
...
TCP 127.0.0.1:9000 127.0.0.1:59691 ESTABLISHED 6744
また、ブラウザー (chrome) は、アドレス バーのデバッグ パラメーターで正しく開きます。
https://xxxxx.xxx/xxxxx/dMotor1_2PropZ.php?XDEBUG_SESSION_START=netbeans-xdebug
しかし、Netbeans は「待機中の接続」でハングするだけです
試したこと:
- 適用可能なすべてのファイアウォールを徹底的にチェックし、Windows にバンドルされているファイアウォールを無効にし、サーバー上の iptables と ip6tables を一掃しましたが、効果はありません。
- これが問題を引き起こしている場合に備えて、httpsではなくhttpでプロジェクトを複製しようとしましたが、効果はありません
- すべてのタイプの XDebug.ini 設定
- project->properties->Run Configuration->Advanced->Debug Url で「open browser」を無効にし、XDEBUG_SESSION_START パラメータを正しく追加して Chrome でページを手動で開いても効果なし
- project->properties->Run Configuration->Advanced->Debug Url の下で、project->properties->Run Configuration の下の index.php 設定で「ask every time」を選択しても効果なし
- project->properties->Run Configuration の下で、次のように XDEBUG_SESSION_START 引数を手動で追加します: netbeans-xdebug、効果なし
- コンピューターを再起動し、Apache を再起動し、リモート マシンを無限に再起動しても、効果はありません
- 「クロムのサイレントデバッグモード」を有効にしても効果はありません
- '--remote-debugging-port=9000' オプションを chromes スタートアップ ショートカットの実行パスに追加しても効果なし
- PHPStormをインストールして、さらに効果があるかどうかを確認しますが、効果はありません
- 別のブラウザーを使用 (Firefox と IE を試した)、効果なし
- ウィザードを使用してバージョンが PHP リリースと互換性があることを確認した後、XDebug を再インストールしましたが、効果はありません
- このヘルプの場合に index.php を作成しても、効果はありません
- php.ini ファイルでタイムゾーンを設定しても効果なし
現在の理論:
接続拒否?接続をブロックしているものは本当にありますか? もしそうなら、どうすればそれを見つけることができますか?考えられることはすべて試しました。そうでなければ、これはまったく別の問題を隠しているデフォルトのエラー メッセージですか?
さらに詳しい情報:
正直なところ、ここで単純なことを見逃していて、深く掘り下げすぎて簡単に理解できなかった可能性があります.XDebugをリモートマシンで動作させようとしたのはこれが初めてで、Linux管理者とNetbeansの経験は限られています.
さらに奇妙なことに、オフィスで説明した構成で一度動作させた後、コンピューターをスタンバイにして家に帰りました。この時点で、デバッグを一度実行してから、設定を変更せずに、説明されている問題を実行することもできました。上記が始まりました。
XDebug ログ ファイルに「接続できませんでした」が含まれていますが、現在、新しいコンテンツは追加されていません。
どんな助けでも本当に感謝しています。
前もって感謝します、
ジェームズ