Xdebug プロキシを介したマルチユーザーデバッグ
デバッグセッションを開始すると、Xdebug 拡張機能は PhpStorm が実行されている IP アドレスに接続し、xdebug.remote_host
(Xdebug 2 の場合)または xdebug.client_host
(Xdebug 3 の場合)の値として指定されます。PhpStorm はこの接続を受け入れ、それを介して Xdebug と通信できます。Xdebug は、単一の IP アドレスへの接続のみをサポートし、セキュリティ上の理由から、ブラウザーを実行している IP アドレスに自動的に接続し直すことはありません。マルチユーザー環境(英語)で PHP アプリケーションをデバッグするために、Xdebug はいわゆる DBGp プロキシ(英語)を提供します。
プロキシを使用すると、PHP Xdebug 拡張機能は PhpStorm に直接接続するのではなく、代わりに DBGp プロキシサーバーに接続します。その後、チーム内のすべての開発者がそのプロキシに接続します。各開発者は、このプロキシを介して実行される個別のデバッグセッションを持ち、同じサーバー上で同じコードのマルチユーザーデバッグを行うことができます。

Xdebug プロキシ(DBGp)サーバーを介したマルチユーザーデバッグの構成
DBGp プロキシをダウンロードしてインストールする
デバッグセッションを開始できるようにするには、Web サーバー自体とすべての開発者マシンからアクセスできるサーバー上で DBGp プロキシを実行する必要があります。Web サーバー、同じネットワーク内のマシン、または SSH トンネル経由でアクセス可能なマシンにプロキシをインストールできます。
プラットフォーム用の dbgpProxy 実行可能ファイルを DBGp プロキシツールのダウンロードページ(英語)にダウンロードします。
Web サーバー、または Web サーバーとすべての開発者マシンの両方と通信できるマシンで DBGp プロキシを開始します。DBGp プロキシ実行可能ファイルは、2 つの主要な引数を受け入れます。
-i
: IDE(クライアント)接続をリッスンするホストとポート-s
: デバッガーエンジン(サーバー)接続をリッスンするホストとポート
詳細は DBGp プロキシツールのドキュメント(英語)を参照してください。
次の例では、ループバックアドレス 127.0.0.1 とポート 9001 でデバッガー接続をリッスンするプロキシを起動し、マシンの IP アドレスとポート 9000 で開発者をリッスンします。
dbgpProxy.exe -i 192.168.1.11:9000 -s 127.0.0.1:9001./dbgpProxy-macos -i 192.168.1.11:9000 -s 127.0.0.1:9001./dbgpProxy -i 192.168.1.11:9000 -s 127.0.0.1:9001DBGp プロキシは、起動時にこれらの設定を確認します:
Xdebug が Web サーバーにインストールされ、構成されていることを確認してください
エディターでアクティブな php.ini ファイルを開きます:
設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワークの PHP をクリックします。
表示される PHP ページで、CLI インタープリターフィールドの横にある
をクリックします。
開いている CLI インタープリターダイアログでは、構成ファイルの読み取り専用フィールドには、アクティブな php.ini ファイルへのパスが表示されます。エディターで開くをクリックします。
少なくとも次の設定が指定されていることを確認してください。
[xdebug] zend_extension="<path to xdebug extension>" xdebug.remote_enable=1 xdebug.remote_host=dbgp_proxy_hostname_or_ip xdebug.remote_port="<the port (9000 by default) to which Xdebug connects>"[xdebug] zend_extension="<path to xdebug extension>" xdebug.mode=debug xdebug.client_host=127.0.0.1 xdebug.client_port="<the port (9003 by default) to which Xdebug connects>"
Xdebug の構成の詳細については、Xdebug を構成するを参照してください。
PhpStorm から DBGp プロキシサーバーへのアクセスを構成する
ブラウザーでデバッグセッションを開始する
使用しているブラウザーのデバッグ拡張機能が、登録済みの IDE キーに設定されていることを確認します。
PhpStorm で、ツールバーの
をクリックするか、メインメニューで を選択して、受信デバッグ接続をリッスンできるようにします。これにより、デバッグセッションの開始時に PhpStorm が反応し、デバッグツールウィンドウが自動的に開きます。スクリプトを起動する前に、ブレークポイントが設定されているか、設定 / 環境設定ダイアログ Ctrl+Alt+S のデバッグページで PHP スクリプトの最初の行で中断するオプションが有効になっていることを確認してください。
ブラウザーでページをリフレッシュしてデバッグセッションを開始します。
トラブルシューティング
リモートファイルパスがプロジェクト内のファイルパスにマップされていない
場合によってはデバッガーに接続できますが、リモートとプロジェクトファイル間のマッピングが定義されていないことを示すエラーメッセージが表示されます。これは、PhpStorm がデバッグ中のファイルに対応するローカルファイルを判別できないことを意味します。

この問題は、クリックしてパスマッピングを設定しますをクリックし、必要なパスマッピングを提供することで解決できます。
さらに、これらのマッピングは、Web サーバーとの同期を構成するに記載されている手法を使用して構成できます。
ターゲットマシンが積極的にそれを拒否したため、接続できませんでした
PhpStorm が DBGp プロキシに登録されており、受信デバッガー接続をリッスンしていることを確認してください。
PhpStorm およびデバッガーのブックマークレットまたはブラウザー拡張機能で 正しい IDE キーが設定されていることを確認してください。
ファイアウォールが DBGp プロキシへの接続をブロックしていますか? その場合は、PHP Xdebug 拡張モジュールが開発者マシンだけでなく、開発者マシンにも接続できることを確認してください。http://canyouseeme.org(英語) などのサービスを使用して、開いている受信ポートを確認できます。
ファイアウォールが IDE への接続をブロックしていますか? PhpStorm が DBGp プロキシマシンから接続できることを確認してください。http://canyouseeme.org(英語) などのサービスを使用して、開いている受信ポートを確認できます。
DBGp プロキシアプリケーションは間違った IP アドレスにバインドします。アドレスとして 0.0.0.0 を使用して実行すると、DBGp プロキシサーバー上の任意の IP アドレスにバインドされます。例:
dbgpproxy -i 0.0.0.0:9001 -s 0.0.0.0:9000
を実行します。
同じマシンに Xdebug と DBGp プロキシをインストールした状態で、PhpStorm でマルチユーザデバッグをテストする場合、検証する必要があるものがいくつかあります。
PhpStorm は間違った IP アドレスにバインドします。PhpStorm も実行されているローカルマシンで DBGp プロキシを実行すると、IDE が間違ったネットワークサブネットを使用している可能性があります。これを修正するには、メインメニューで0.0.0.0 に設定します。次に、PhpStorm を DBGp プロキシに再登録してみてください。
を選択し、DBGp プロキシサーバーの IP アドレスをポートの競合が存在します。ローカルマシンで DBGp をテストする場合、PhpStorm と DBGp の両方が同じポートにバインドする場合があります。別のポートを使用するように DBGp を構成するか、設定 / 環境設定ダイアログ Ctrl+Alt+S の ページで PhpStorm の Xdebug ポートを変更することにより、そうではないことを確認してください。
関連ページ:

PHP
このノードのページとすべてのページは、PHP プラグインが有効になっている場合にのみ使用できます。PHP プラグインは PhpStorm にバンドルされており、デフォルトで有効になっています。プラグインが無効になっている場合は、プラグインの管理に従って、設定 / 環境設定 | プラグインページでプラグインを有効にします。このページを使用して、使用可能な PHP インタープリターの 1 つを選択して、プロジェクトで PHP 開発およびユニットテストのサポートを設定します(ローカル PHP インタープリ...

ブラウザーのデバッグ拡張機能
デバッグを開始するには、まずサーバー上でデバッガーエンジンをアクティブにする必要があります。これを行うには、特別なまたはパラメーターを設定する必要があります(詳細については、Xdebug および Zend デバッガーの公式ドキュメントを参照してください)。手動で行うこともできますが、ブラウザーの拡張機能を使用する方が便利です。これにより、ワンクリックでデバッガーを有効にすることができます。次の表に、使用可能なデバッグ拡張機能を示します。Xdebug ヘルパー Xdebug ヘルパーまたは Xdebug-...

ブレークポイント
ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、単純な場合(たとえば、コード行に到達したときにプログラムを一時停止する場合)や、より複雑なロジック(追加の条件に対するチェック、ログメッセージの書き込みなど)を伴う場合があります。一度設定すると、ブレークポイントは、一時的なブレークポイントを除いて、明示的に削除するまでプロジェクトに残ります。ブレークポイントを持つファイルが外部で変更...

デバッグ
このページは、PHP プラグインが有効になっている場合にのみ使用できます。PHP プラグインは PhpStorm にバンドルされており、デフォルトでアクティブになっています。プラグインが無効になっている場合は、プラグインの管理に従って、設定 / 環境設定 | プラグインページでプラグインを有効にします。このページを使用して、Xdebug と Zend デバッガーの動作を設定します。事前構成この領域には、デバッガーのインストール、デバッガーのクッキーを制御してデバッグセッションを開始 / 停止するを実...

PHP と JavaScript コードを同時にデバッグする
Web アプリケーションは通常、PHP コードと JavaScript コードの両方で構成されます。PHP コードはサーバー側で実行され、JavaScript はブラウザーで実行されます。PhpStorm を使用すると、PHP コードを簡単にデバッグして、サーバーで何が起こっているかを調べたり、変数を変更したりできます。IDE から JavaScript デバッグセッションを開始することにより、ブラウザーで実行されている JavaScript をデバッグすることもできます。このチュートリアルでは...