2017-02-15 2 views
0

xdebugがインストールされた、OSX上で実行中の迷惑メールボックスを持っていますが、Atom xdebugプラグイン(php-debug)を接続しようと苦労しています。Vagrant + Xdebug + Atom

phpinfo();データをxdebug検証サイトに貼り付けたところ、すべてが良好であると言いました。そして、xdebugのすべての設定を見ることができます。

迷惑メールファイルにポート9000がマップされています。

config.vm.network :forwarded_port, guest: 9000, host: 9000 

放浪ボックスは、サーバーのIPとして192.168.10.100を公開するだけでネットワークを主催持っています。

そして、私は別のXdebugをオプションのすべての方法を試してみた、ATOMプラグインサイトのものが提案..

xdebug.remote_enable=1 
xdebug.remote_host=127.0.0.1 
xdebug.remote_connect_back=1 
xdebug.remote_port=9000 
xdebug.remote_handler=dbgp 
xdebug.remote_mode=req 
xdebug.remote_autostart=true 

しかし、それはremote_connect_back=1はxdebugのはremote_host設定を無視することを意味して少し混乱しています - ので、なぜ両方がそこにあるのか分かりません。私はオプションを変更するたびに後にApache/PHPを再起動してきた、と私はポート9000

COMMAND  PID USER FD TYPE    DEVICE SIZE/OFF NODE NAME 
Atom\x20H 10656 Matt 28u IPv6 0x321cb0a96ba5b593  0t0 TCP *:cslistener (LISTEN) 
VBoxHeadl 10889 Matt 19u IPv4 0x321cb0a981a71433  0t0 TCP *:cslistener (LISTEN) 

あなたが見ることができるの両方で聴いている人をチェックした場合、彼らはphpinfo();

がロードされているチェック

vagrant(仮想ボックス)とAtom。 Atomは奇妙なIPv6ですが....

しかし、ATOMでデバッガを有効にし、ブレークポイントを設定してサイトを叩くと、何も起こりません - ATOMは決して接続しません。

アイデア?誰でもこれを稼働させましたか?

+0

どこから指示を受けましたか?特定のマニュアルですか? xdebugが一般的にどのように動作するかには、誤解があるようです。 1)* "しかし、remote_connect_back = 1はxdebugがremote_host設定を無視するため、やや混乱します" *あなたは正しい - そのオプションは必要ありません - '0'に設定することをお勧めします – LazyOne

+0

2)' xdebug。 remote_host = 127.0.0.1' - これは間違っています(SSHトンネル経由のデバッグをしない限り)。これは、デバッグクライアント(あなたの場合はAtom)が実行されているIPでなければなりません。それはクライアントに接続するxdebugであり、それ以外の方法ではありません:https://xdebug.org/docs/remote 3)これはまた、IPがその無香料機械から見えるものでなければならないことを意味します。 '$ _SERVER ['REMOTE_ADDR']'を見てください。 – LazyOne

+0

4)これはまた、あなたがバグの9000ポートを公開する必要はないことを意味します - 誰もそれに接続しません(ポート80 Webサーバー用) - VM /ゲストOSのxdebugが外部の "実際の" /ホストOSに接続します。何かあれば、着信ではなくそのポートでの発信接続を許可する必要があります。 5)* "誰がポート9000でリッスンしているかチェックする" *これはAtomがTCPv4経由でxdebug接続を受信できないことを意味します.xdebugはデフォルトで使用しようとします – LazyOne

答えて

2

しかし、それはremote_connect_back=1はxdebugのは、設定remote_hostを無視する手段としては少し混乱して

あなたは正しいです - それは、より良い0

に設定する - そのオプションが必要とされていません

xdebug.remote_host = 127.0.0.1

これは間違っています(unlesあなたはSSHトンネル経由でデバッグをしています)。これは、デバッグクライアント(あなたの場合はAtom)が実行されているIPでなければなりません。それは他の方法で回避クライアントに接続しないでxdebugのだhttps://xdebug.org/docs/remote

これはまた、IPはそのようベイグラントマシンから見なければならないことを意味します。おそらくそれを得るための最も簡単な方法 - $_SERVER['REMOTE_ADDR']の内容を見てください。

迷惑メールファイルにポート9000がマップされています。

config.vm.network :forwarded_port, guest: 9000, host: 9000

あなたはベイグラントで9000ポートを公開する必要はありません - (Webサーバのポート80で行うように)誰もがそれに接続されません - それは、VM /ゲストOSからxdebugのだだろう"本物の" /ホストOSに外部から接続してください。

何かあれば、着信の代わりにそのポートで発信接続を許可する必要があります。私はポートで待機している人をチェックした場合

は9000

この1は、AtomがIPv6を指定しない限り、(デフォルトで使用しようとしますxdebugのTCPv4 ..以上の着信xdebugの接続を受信できないことを意味しアドレスはxdebug.remote_host)。


どちらかといえば - などxdebugのログ(xdebug.remote_log)を収集し、それが接続しようとする場所を確認

0

@LazyOneは既にこの質問に答えたが、私が持っていた問題があったアンチウイルス(マカフィー)によって引き起こされました着信トラフィックをブロックします。多分これは将来誰かを助けるでしょう。