PhpStorm 2020.3 ヘルプ

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 プロキシサーバーに接続します。その後、チーム内のすべての開発者がそのプロキシに接続します。各開発者は、このプロキシを介して実行される個別のデバッグセッションを持ち、同じサーバー上で同じコードのマルチユーザーデバッグを行うことができます。

Ps Xdebug Schema Proxy

Xdebug プロキシ(DBGp)サーバーを介したマルチユーザーデバッグの構成

DBGp プロキシをダウンロードしてインストールする

デバッグセッションを開始できるようにするには、Web サーバー自体とすべての開発者マシンからアクセスできるサーバー上で DBGp プロキシを実行する必要があります。Web サーバー、同じネットワーク内のマシン、または SSH トンネル経由でアクセス可能なマシンにプロキシをインストールできます。

  1. プラットフォーム用の dbgpProxy 実行可能ファイルを DBGp プロキシツールのダウンロードページ(英語)にダウンロードします。

  2. 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:9001

    DBGp プロキシは、起動時にこれらの設定を確認します:

    Ps Pdgp Running

Xdebug が Web サーバーにインストールされ、構成されていることを確認してください

  1. エディターでアクティブな php.ini ファイルを開きます:

    1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワークPHP をクリックします。

    2. 表示される PHP ページで、CLI インタープリターフィールドの横にある the Browse button をクリックします。

    3. 開いている CLI インタープリターダイアログでは、構成ファイルの読み取り専用フィールドには、アクティブな php.ini ファイルへのパスが表示されます。エディターで開くをクリックします。

  2. 少なくとも次の設定が指定されていることを確認してください。

    [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 プロキシサーバーへのアクセスを構成する

  1. メインメニューでツール | DBGp プロキシ | IDE の登録を選択します。

  2. 表示される DBGp プロキシダイアログでは、IDE キーの値(デバッグセッションを識別するための各開発者の一意の値)、Xdebug プロキシサーバーのホストとポートを指定します。

    Pdgp Register Ide
  3. 指定したプロキシサーバーに接続するには、OK をクリックします。サーバーは資格情報を登録し、接続を確認します。

    Pdgp Register Ide Connected

    PhpStorm は正常な接続についても通知します。

    Pdgp Register Ide Successful
  4. 既存の資格情報を更新するには、メインメニューでツール | DBGp プロキシ | 構成を選択します。表示される DBGp プロキシダイアログで、IDE キー、ホスト、ポート設定を編集します。

    現在の資格情報を破棄するには、メインメニューのツール | DBGp プロキシ | IDE 登録のキャンセルを選択します。

ブラウザーでデバッグセッションを開始する

  1. 使用しているブラウザーのデバッグ拡張機能が、登録済みの IDE キーに設定されていることを確認します。

    Pdgp Ide Key
  2. PhpStorm で、ツールバーの the Start Listening for PHP Debug Connections button をクリックするか、メインメニューで実行 | PHP デバッグ接続のリッスンを開始を選択して、受信デバッグ接続をリッスンできるようにします。これにより、デバッグセッションの開始時に PhpStorm が反応し、デバッグツールウィンドウが自動的に開きます。スクリプトを起動する前に、ブレークポイントが設定されているか、設定 / 環境設定ダイアログ Ctrl+Alt+Sデバッグページで PHP スクリプトの最初の行で中断するオプションが有効になっていることを確認してください。

    ブラウザーでページをリフレッシュしてデバッグセッションを開始します。

    Pdgp Debugging Started

トラブルシューティング

リモートファイルパスがプロジェクト内のファイルパスにマップされていない

場合によってはデバッガーに接続できますが、リモートとプロジェクトファイル間のマッピングが定義されていないことを示すエラーメッセージが表示されます。これは、PhpStorm がデバッグ中のファイルに対応するローカルファイルを判別できないことを意味します。

No mappings configured

この問題は、クリックしてパスマッピングを設定しますをクリックし、必要なパスマッピングを提供することで解決できます。

さらに、これらのマッピングは、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 が間違ったネットワークサブネットを使用している可能性があります。これを修正するには、メインメニューでツール | DBGp プロキシ | 構成... を選択し、DBGp プロキシサーバーの IP アドレスを 0.0.0.0 に設定します。次に、PhpStorm を DBGp プロキシに再登録してみてください。

  • ポートの競合が存在します。ローカルマシンで DBGp をテストする場合、PhpStorm と DBGp の両方が同じポートにバインドする場合があります。別のポートを使用するように DBGp を構成するか、設定 / 環境設定ダイアログ Ctrl+Alt+S言語 & フレームワーク | PHP | デバッグページで 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 をデバッグすることもできます。このチュートリアルでは...