PhpStorm 2020.2ヘルプ

Xdebugプロキシを介したマルチユーザーデバッグ

デバッグセッションを開始すると、Xdebug拡張機能は、xdebug.remote_host 値として指定された、PhpStormが実行されているIPアドレスに接続します。PhpStormはこの接続を受け入れ、それを介してXdebugと通信できます。Xdebugは単一のIPアドレスへの接続のみをサポートし、セキュリティ上の理由から、ブラウザを実行するIPアドレスへの自動接続はサポートしていません。マルチユーザー環境(英語)でPHPアプリケーションをデバッグするために、XdebugはいわゆるDBGp プロキシー(英語)を提供しています。

プロキシを使用すると、PHP Xdebug拡張機能はPhpStormに直接接続するのではなく、代わりにDBGpプロキシサーバーに接続します。その後、チーム内のすべての開発者がそのプロキシに接続します。各開発者は、このプロキシを介して実行される個別のデバッグセッションを持ち、同じサーバー上で同じコードのマルチユーザーデバッグを行うことができます。

Ps Xdebug Schema Proxy

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

Xdebugプロキシ(DBGp)サーバー経由でマルチユーザーデバッグを構成するには、次の一般的な手順を実行します。

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

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

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

  2. Webサーバー、またはWebサーバーとすべての開発者マシンの両方と通信できるマシンでDBGpプロキシを開始します。DBGpプロキシ実行可能ファイルは、2つの主要な引数を受け入れます。

    • -s : デバッガエンジン(サーバー)接続をリッスンするポート

    • -i : IDE(クライアント)接続をリッスンするポート

    詳細はDBGpプロキシツールのドキュメント(英語)を参照してください。

    次の例では、ループバックアドレス127.0.0.1とポート9001でデバッガ接続をリッスンし、マシンのIPアドレスとポート9000で開発者をリッスンするプロキシを開始します。

    dbgpProxy.exe -s 127.0.0.1:9001 -i 192.168.99.1:9000
    ./dbgpProxy-macos -s 127.0.0.1:9001 -i 192.168.99.1:9000
    ./dbgpProxy -s 127.0.0.1:9001 -i 192.168.99.1:9000

    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=xdebug_module_goes_here xdebug.remote_enable=1 xdebug.remote_host=dbgp_proxy_hostname_or_ip xdebug.remote_port=9001

Xdebugの構成の詳細については、Xdebugを構成するを参照してください。

PhpStormからDBGpプロキシサーバーへのアクセスを構成する

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

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

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

    Pdgp Register Ide Connected

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

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

    現在の資格情報を破棄するには、メインメニューのツール | Xdebugプロキシ | 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プロキシに登録されており、受信デバッガ接続をリッスンしていることを確認してください。

  • 正しいIDEキーが PhpStormとデバッガのブックマークレットまたはブラウザ拡張設定されていることを確認してください。

  • ファイアウォールが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ポートを変更することにより、そうではないことを確認してください。

最終更新日: 2020年7月09日

関連ページ:

PHP

The page and all the pages under this node are available only when thePHPplugin is enabled. Theplugin is activated by default. If the plugin is disabl...

Xdebugを構成する

XdebugをダウンロードPHPのバージョンと互換性のあるXdebug拡張をダウンロードし、インストールガイドの説明に従ってインストールします。AMPパッケージを使用している場合、Xdebug拡張機能が既にインストールされている可能性があります。パッケージに固有の手順を参照してください。Xdebug...

ブラウザーのデバッグ拡張機能

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

デバッグツールウィンドウ

デバッガセッションを開始すると、デバッグツールウィンドウが表示されます。このウィンドウを使用して、デバッガセッションを制御し、プログラムデータ(フレーム、変数など)を表示および分析し、さまざまなデバッガアクションを実行します。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する...

ブレークポイント

ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、単純な場合(たとえば、コード行に到達したときにプログラムを一時停止する場合)や、より複雑なロジック(追加の条件に対するチェック、ログメッ...

デバッグ

>このページを使用して、XdebugとZend デバッガーの動作を設定します。事前構成この領域には、デバッガのインストール、デバッガのクッキーを制御してデバッグセッションを開始/停止するを実行するブックマークレットの生成、およびゼロコンフィギュレーションデバッグの起動に関する簡単なガイドライン...