2017-01-02 14 views
2

MacOS Sierra、PhpStorm、Xdebugを使用すると、Webアプリケーションがポート80(PhpStormから実行されていない)で設定されます。PhpStorm + Xdebugは、外部IPアドレスを使用する場合にのみブレークポイントにヒットします

localhost:80/index.phpにブラウズすると、PhpStormはブレークポイントで停止しません。外部IP 192.168.1.2/index.phpにアクセスすると、PhpStormはブレークポイントにヒットします。

外部IPの代わりにlocalhostをデバッグに使用したいと思います。

localhostとPhpStormを連携させる方法はありますか?

P.S. Visual Studioコードは両方のシナリオで動作します(したがって、XdebugとPhpStormはうまく動作していると思います)。

[xdebug] 
zend_extension = /usr/local/Cellar/php56/5.6.29_5/lib/php/extensions/debug-non-zts-20131226/xdebug.so 
xdebug.remote_enable=1 
xdebug.remote_handler=dbgp 
xdebug.remote_port=9000 
xdebug.remote_autostart=1 
xdebug.remote_connect_back=1 
xdebug.idekey=vagrant 
xdebug.remote_host=0.0.0.0 

xdebug.remote_hostに127.0.0.1localhostの、同じ動作を設定しようとしました。

ローカルホストデバッグ:80、Xdebugのログ表示:

Log opened at 2017-01-03 14:06:36 
I: Checking remote connect back address. 
I: Checking header 'HTTP_X_FORWARDED_FOR'. 
I: Checking header 'REMOTE_ADDR'. 
I: Remote address found, connecting to ::1:9000. 
W: Creating socket for '::1:9000', poll success, but error: Operation now in progress (19). 
E: Could not connect to client. :-(
Log closed at 2017-01-03 14:06:36 

VSコードを使用する場合は、エラーとはXdebugがないxdebug.remote_connect_back(デフォルト値)を0に設定代わりI: Connected to client. :-)

+0

PhpStormの設定を共有してください。今のところ、IPアドレスのみのためにPhpStormに "debug server"エントリを作成している可能性があります - 'Settings/Preferences |言語とフレームワーク| PHP |サーバー。それがあれば、xdebug関連のログを収集してください(IDEとxdebugの両方から)。 – LazyOne

+0

*(参照用)* PhpStormフォーラムでも同じです - https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000010444-PHPStorm-Xdebug-hits-a-breakpoint-only -when-using-external-IP-address – LazyOne

+0

おかげで@LazyOne、私はサーバー設定を変更しようとしましたが、PHPStormが接続を検出したとき(外部IP経由で接続しているとき)に自動的に作成されます。 – Ofiris

答えて

5

を示しているが解決しました問題。

Xdebug documentation:有効にした場合

、xdebug.remote_hostの設定は無視され、Xdebugのは HTTPリクエストを行ったクライアントに接続しようとします。 $ _SERVER ['HTTP_X_FORWARDED_FOR']と$ _SERVER ['REMOTE_ADDR']変数 を確認し、使用するIPアドレスを調べます。

Xdebugがlocalhostに接続しようとすると、PhpStormがサポートしていないTCPv6が使用されました。 remote_connect_backを0に変更すると、XdebugはPhpStormがサポートするTCPv4を使用してremote_host値を使用しました。

関連する問題