2012-07-19 8 views
19

に接続することはできません私はのは、以下のソフトウェア構成で動作するようにリモートデバッグを取得したい:PHPリモートデバッグ:XDebugのはJetBrainsのPHPの嵐クライアント

勝利7 Proの64ビット WAMPサーバ2.2(32ビット)税込。 Apache 2.2.22、PHP 5.4.3、XDebug php_xdebug-2.2.1-5.4-vc9.dll JetBrains PHPStorm 4.0.3

1. WAMPが起動していて、私のサイトはlocalhost/foxの下にあります/

2)PHPの嵐は私の、ソースファイルとApacheのエイリアスはlocalhost /キツネ

2)私はPHP拡張のXDebugをインストールして、私のphpに以下の行を追加したとの間のマッピングが存在するプロジェクトを持っています。 ini

[xdebug] 
zend_extension="c:/wamp/bin/php/php5.4.3/zend_ext/php_xdebug-2.2.1-5.4-vc9.dll" 
xdebug.remote_enable=On 
xdebug.remote_host="localhost" 
xdebug.remote_port=9000 
xdebug.remote_connect_back=On 
xdebug.remote_autostart=On 
xdebug.profiler_enable=On 
xdebug.profiler_enable_trigger=off 
xdebug.profiler_output_name=cachegrind.out.%t.%p 
xdebug.profiler_output_dir="c:/wamp/tmp" 
xdebug.remote_log="C:/wamp/tmp/xdebug.log" 
xdebug.remote_cookie_expire_time=6000 

これは、 XDebugとコールバックアドレスのデバッグ。最初、私は、ローカルサーバー

を加えた後、ここに私の設定

http://www.bilder-hochladen.net/files/jrn0-2-c81e-jpg-nb.htmlを確認し、私はphpstormを構成し)xdebug.org/wizard.php

3:

私はここに私のインストールすでにチェック

(私が代わりにもサーバーのアドレスとして127.0.0.1/fox試みたが、ローカルホスト)

私のデバッグのhier設定:電話の受話器が緑色にチューリング、いままでのことをされて

Run -> Start listen to PHP Debug Connections 

機能をクリックし、(それは赤です) http://www.bilder-hochladen.net/files/jrn0-1-c4ca-jpg.html

は、今私は、私のApacheを再起動し、私はphpstormに入り、ブレークポイントを設定しました正確には意味することができますが、それは私にとってポジティブなシグナルです。

私は今ローカルWebサーバabsolutley上で私のPHPスクリプトを実行しても何も起こらず、プログラムはブレークポイントを超えて実行され、停止しません。そのWindowsファイアウォールができた、どこか私はヒントを見つけ、インターネットで

I: Checking remote connect back address. 
I: Remote address found, connecting to ::1:9000. 
E: Could not connect to client. :-(
Log closed at 2012-07-19 14:21:08 

:私はこれらのように、これらのメッセージの負荷を見つける:Xdebuggersで

(/wamp/tmp/xdebug.log C)のログコミュニケーションをブロックして、それをcompletleyから外しましたが、それは助けになりませんでした。

また、私はtelnetでlocalhost:9000に接続しようとしましたが、私はphpstormからの応答を得ました。

誰かがエラーを検索するためのアイデアを持っていますか、それ以外のものは何かを試すことができますか?

マイケル

、事前にあなたの助けのために非常にP.S.をありがとう申し訳ありませんが、私はここに新しいので、2つ以上のリンクを投稿することはできません。そのため、xdebugウィザードへのハイパーリンクはありません。

+2

TcpView、netstat、Process Explorerなどのツールを使用して、PhpStormがポート9000でリッスンしていることを確認します。次に、 'telnet 127.0.0.1 9000'を使用して接続を試みます。 telnetが動作すれば、XDebugも動作するはずです。そうでなければ、ネットワーキング上の問題です。 – CrazyCoder

+0

ブラウザからPHPStormブックマークレットの1つを使用してデバッガ(または同等のもの)を有効にしていますか? – redbirdo

+0

こんにちはCrazyCoder、私はテルネットを試したと言って忘れて、それはphpstormが聞いて動作しました。とにかく。 – cimmx

答えて

6

IPV6を無効にすることができますhttp://support.microsoft.com/kb/929852、接続しようとすると、これは問題だと思います。

:: 1:9000に接続するリモートアドレスが見つかりました。

システムはIPV6と接続しようとしていますが、XDebugはIPV4のみを有効にしていると思います。

+0

ありがとう!私のMAMP Proの仮想ホスト設定は自動的にIPv6ローカルホストエントリ(:: 1)を/ etc/hostsに追加します。それらを削除した後、xDebugは期待どおりに再び動作しました! –

0

コード内のブレークポイントはどこですか?私はXDebugが面白いことがあることを知っています。 PHP 5.4の場合

、あなたのXdebugの設定はここで

[XDebug] 
zend_extension="<path to php_xdebug.dll>" 
xdebug.remote_enable=1 
xdebug.remote_port="<the port for XDebug to listen to>" (the default port is 9000) 
xdebug.profiler_enable=1 
xdebug.profiler_output_dir="<AMP home\tmp>" 

http://www.jetbrains.com/phpstorm/webhelp/configuring-xdebug.html

+0

xdebug.profiler_output_dirは何を求めていますか?システム上のtmpディレクトリへのパス?私はUbuntuを使用しているので、あまりにもそれを設定する必要があります:/ tmp ? – johnsnails

+0

@johnsnailsプロファイラ出力が書き込まれるディレクトリで、PHPを実行するユーザにそのディレクトリへの書き込み権限があることを確認します。デフォルトでは '/ tmp' – bear

12

たぶん少し遅れたが...である必要があり、あなたの設定に矛盾があります

xdebug.remote_host="localhost" 
xdebug.remote_connect_back=On 

これらの2つの設定は重複しています。あなたのケースは何ですか?

a)からアプリケーションをデバッグする場合(たとえば、開発中でlocalhostにデプロイする場合)。

これでほとんど完了です。既にリモートホストがlocalhostであると定義しています。 (;付き)

B)あなたは複数の開発ソースを同じネットワーク内のアプリケーションをデバッグ(例えば、いくつかのマシンを)受け入れるようにしたいremote_connect_back行をコメントアウトします。

次に、remote_host行がオーバーライドされているため、削除またはコメントすることができます。

これは実際に現在実行している設定です。それで、どうしたの?このスクリプトを実行して確認してください:

<? 
echo $_SERVER['REMOTE_ADDR']; 

出力は::1になります。あなたのApacheサーバーに要求しているホストはlocalhostです。そして、Apacheはその名前をIPv6アドレス::1として解決しています。最後は間違っていません。しかし、XdebugはIPv6アドレスに接続できません。参照:

I: Remote address found, connecting to ::1:9000. 
E: Could not connect to client. :-(

だから私たちの目標は、(OSレベルでもApacheのレベルでIPv6のいずれかのサポートを無効にすることなく)、ApacheがIPv4アドレスに 好ましく localhostを解決できるようにすることになります。これはあなたの hostsファイルに次の行を追加することによって達成することができる。

127.0.0.1 localhost 

この単純なハックは、トリックを行います!今すぐlocalhostは、好ましくはIPv4アドレスとして解決されますが、::1はまだ完全に理解できます。

+1

ありがとうございます。ホストファイルのトリックは私の欠けているキーだった;) – ikkez

+3

ああ、あなたは私のヒーローです。私は最後の2時間をすべてのインターネット記事に行き、彼らはすべてremote_connect_backを持っていました。私の正気を説明して保存していただきありがとうございます。+1 – PersyJack

+0

これは役に立ちました。 OPが答えを真に設定していないことは残念です –

関連する問題