Xdebug を構成する
Xdebug をダウンロード
PHP バージョンと互換性のある Xdebug 拡張(英語)をダウンロードし、 Xdebug インストールガイド(英語)の説明に従ってインストールします。
事前構成された AMP (Apache、MySQL、PHP) パッケージを使用している場合は、Xdebug 拡張機能がすでにインストールされている可能性があります。 パッケージに固有の手順を参照してください。
Xdebug と PHP エンジンの統合
アクティブな php.ini ファイルをエディターで開きます。
デバッグエンジンが PhpStorm と同じマシンにインストールされている場合は、PhpStorm で設定されている PHP インタープリターに関連付けられている php.ini ファイルを開いて編集してください:
設定 ダイアログ (Ctrl+Alt+S) で、 PHP をクリックします。
表示される PHP ページで、 CLI インタープリター フィールドの横にある
をクリックします。
開いている CLI インタープリター ダイアログで、 構成ファイル 読み取り専用フィールドにアクティブな php.ini ファイルへのパスが表示されます。 エディターで開く をクリックします。
Xdebug をブロックする Zend デバッガーおよび Zend Optimizer ツールを無効にします。 これを行うには、 php.ini ファイル内の次の行を削除するかコメントアウトします。
zend_extension=<path_to_zend_debugger> zend_extension=<path_to_zend_optimizer>Xdebug を有効にします。 これを行うには、 php.ini ファイルで
[xdebug]セクションを見つけるか作成し、次のように更新します。[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] zend_extension="<path to xdebug extension>" xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port="<the port (9000 by default) to which Xdebug connects>"Xdebug プロキシによるマルチユーザー デバッグ を有効化するには、
xdebug.idekey設定を見つけて、任意の値を割り当ててください。 この値は、Xdebug プロキシサーバーに IDE を登録するために使用されます。php.ini ファイルを保存して閉じます。
次のいずれかを実行して、Xdebug のインストールを確認します。
コマンドラインで次のコマンドを実行します。
php --version出力は、インストールされた拡張の中で Xdebug をリストするはずです:

次のコードを含む php ファイルを作成します。
<?php phpinfo();ブラウザーでファイルを開きます。
phpinfo出力には、Xdebug セクションが含まれている必要があります。

PhpStorm で Xdebug を構成する
Xdebug のインストールを確認する
Ctrl+Alt+S を押して設定を開き、 を選択します。
選択した PHP インタープリターに関連付けられている Xdebug のインストールを確認します。
PHP ページで、 CLI インタープリター リストから該当する PHP インストールを選択し、フィールドの横にある
をクリックします。 このリストには PhpStorm で利用可能なすべての PHP インストールが表示されます。詳しくは、 ローカル PHP インタープリターを構成する および リモート PHP インタープリターの構成 を参照してください。
開いている CLI インタープリター ダイアログには、次の情報が表示されます。
選択した PHP インストールのバージョン。
選択した PHP インストールに関連付けられているデバッグエンジンの名前とバージョン(Xdebug または Zend デバッガー)。 デバッガーが構成されていない場合、PhpStorm は対応するメッセージを表示します:

または、 インストールウィザード(英語)を開き、
phpinfo()の出力をペーストし、 phpinfo() 出力を分析する をクリックします。 デバッグエンジンの構成を検証する での Xdebug のインストールの確認の詳細を参照してください。
Xdebug の動作を定義する
IDE 設定 (Ctrl+Alt+S) で、 PHP ノードの を選択して デバッグ ページを開きます。
Xdebug 領域で、次の設定を指定します。
デバッグポート」}]} Debug port: ツールが PhpStorm と通信するためのポートを指定します。
これは、 php.ini ファイルで指定されているものと同じポート番号である必要があります。
xdebug.client_port="<the port (9003 by default) to which Xdebug connects>"xdebug.remote_port="<the port (9000 by default) to which Xdebug connects>"デフォルトでは、Xdebug2 はポート 9000 でリッスンします。 Xdebug 3(英語) の場合、デフォルトのポートが 9000 から 9003 に変更されました。 複数のポートをコンマで区切って指定できます。 デフォルトでは、 デバッグポート」}]} Debug port 値は 9003,9000 に設定されており、PhpStormが両方のポートで同時にリッスンします。
PhpStorm が デバッグポート」}]} Debug port フィールドで指定されたポートを介して Xdebug エンジンからの受信接続を受け入れるようにするには、 外部接続を受け入れ可能 チェックボックスを選択します。
現在の行で使用できない場合はブレークポイントを解決する (Xdebug 2.8+): チェックボックスを選択すると、Xdebug ブレークポイント解決メカニズムのサポートが有効になります。 このメカニズムで、デバッガーは、PHP が現在の行の内部実行可能バイトコードを生成できるかどうかを評価します。 ブレークポイントが参照する行にそのようなコードがない場合、対応するブレークポイントにヒットできません。 Xdebug は、後続の最大 5 行までスキャンし、実行可能コードが配置されている行で停止し、ブレークポイントの定義をこの行に更新します。
パスマッピングが指定されていないときに最初の行で強制的にブレークする: 選択されたチェックボックスは、 サーバー ページのプロジェクトにマッピングされていないファイルにデバッガーが到達して開いた時点で停止させます。 デバッガーはこのファイルの最初の行で停止し、 変数の調査 / 更新 は次のエラーメッセージを表示します: サーバー上のファイルのローカルコピーを見つけることができません <サーバー上のファイルへのパス> およびリンク クリックしてマッピングを設定します。 リンクをクリックして パスマッピングの問題を解決する ダイアログを開き、問題のファイルをそのローカルコピーにマップします。
このチェックボックスをオフにすると、マップされていないファイルに到達して開いてもデバッガーは停止せず、ファイルは処理されるだけで、エラーメッセージは表示されません。
ソースと異なる場合は、ブレークポイントを解決された位置に移動する: 選択したチェックボックスにより、ブレークポイントの解決後に Xdebug が実際に停止する行へのブレークポイント位置の自動調整が有効になります。
この機能は、 現在の行で使用できない場合はブレークポイントを解決する (Xdebug 2.8+) チェックボックスが有効になっている場合にのみ機能することに注意してください。
スクリプトがプロジェクト外にあるときに最初の行で強制的にブレークする: 選択されたチェックボックスにより、デバッガーは、現在のプロジェクトの外部にあるファイルに到達して開くとすぐに最初の行で停止します。 このチェックボックスをオフにすると、デバッガーは現在のプロジェクトの外部でファイルを開いたときに続行します。
関数の戻り値デバッグを有効化する (Xdebug 3.2+)。: 選択されたチェックボックスは、中間変数に保存せずにすぐに値を返す関数の戻り値のインスペクションに追加のデバッグステップを追加します。
外部接続 領域で、 デプロイサーバー構成として登録されていないホストやポートを介して受信した接続を PhpStorm でどのように扱うかを指定します。
未登録のサーバー構成による外部接続を無視する: デプロイサーバー構成として登録されていないホストやポートから受信した接続を PhpStorm が無視する場合は、このチェックボックスを選択します。 このチェックボックスが選択されている場合、PhpStorm はデプロイサーバー構成を自動的に作成しません。
PHP スクリプトの最初の行で中断する。: このチェックボックスを選択すると、デバッガーと PhpStorm の間の接続が確立されるとすぐにデバッガーが停止します(最初のブレークポイントに到達するまで自動的に実行されるのではなく)。 または、メインメニューから オプションをオンにします。
最大。 同時接続数: このスピンボックスを使用して、同時に処理できる外部接続の数を制限します。
オンデマンドモードで使用するための Xdebug の構成
PhpStorm は オンデマンド モードをサポートしており、グローバル PHP インストールの Xdebug を無効化しておき、コマンドラインスクリプトのデバッグやコードカバレッジレポートが必要なときのみ自動的に有効化できます。 これにより、コマンドラインスクリプト(Composer やユニットテストを含む)をより高速に実行できます。
コマンドラインスクリプトで Xdebug を無効にする:
設定 ダイアログ(Ctrl+Alt+S )で PHP に移動します。
PHP 実行可能ファイル リストから、関連する PHP インタープリターを選択し、その横にある
をクリックします。 開いた CLI インタープリター ダイアログで、 構成ファイル: <php.ini へのパス> ファイルの横にある エディターで開く リンクをクリックします。 すべてのダイアログを閉じて、 php.ini ファイルが開かれているタブに切り替えます。
php.ini ファイルで、
[xdebug]セクションを見つけ、;を前置詞に追加して次の行にコメントします。;[xdebug] ;zend_extension = "<path to xdebug extension>"CLI インタープリター ダイアログを開き、 PHP 実行可能ファイル フィールドの横にある
をクリックします。 PhpStorm は、デバッガーがインストールされていないことを通知します:

必要なときに PhpStorm が Xdebug を有効化できるようにするには、 追加 領域の デバッガー拡張機能[半角スペース] フィールドにそのパスを指定してください。 パスを手動で入力するか、
をクリックして表示されるダイアログで場所を選択します。
Just-In-Time モードで使用するための Xdebug の構成
PhpStorm は、 ジャストインタイム (JIT) モードで Xdebug の使用をサポートしているため、常にコードにアタッチされるのではなく、エラーが発生した場合や例外がスローされた場合にのみ PhpStorm に接続します。 使用する Xdebug のバージョンに応じて、この操作モードは次の設定で切り替えられます。
Xdebug 2 は xdebug .remote_mode(英語) 設定を使用しますが、これは
jitに設定する必要があります。Xdebug 3 は xdebug.start_upon_error(英語) 設定を使用しますが、これは
はいに設定する必要があります。
このモードは、コマンドラインスクリプトのデバッグと Web サーバーのデバッグの両方に使用できます。
コマンドラインスクリプトをデバッグするのか、Web サーバーを使用するのかに応じて、以下のいずれかのシナリオを使用します。
コマンドラインスクリプト
コマンドラインスクリプトのデバッグ時は、カスタム -dxdebug.remote_mode=jit (Xdebug 2 の場合)または -dxdebug.start_upon_error=yes (Xdebug 3 の場合)のディレクティブを 追加の構成オプションとして指定します:
Ctrl+Alt+S を押して設定を開き、 を選択します。
PHP 実行可能ファイル リストから、関連する PHP インタープリターを選択し、その横にある
をクリックします。
開いた CLI インタープリター ダイアログで、 追加 領域の 構成オプション フィールドの横にある
をクリックします。
開いた 構成オプション ダイアログで、
をクリックして新しいエントリを追加します。
構成ディレクティブ フィールドに
xdebug.start_upon_errorと入力し、 値 フィールドにはいと入力します。構成ディレクティブ フィールドに
xdebug.remote_modeと入力し、 値 フィールドにjitと入力します。OK をクリックすると、 CLI インタープリター ダイアログに戻り、 構成オプション フィールドに
-dxdebug.remote_mode=jit(Xdebug 2 の場合)または-dxdebug.start_upon_error=yes(Xdebug 3 の場合)が表示されます。
Web サーバーのデバッグ
ローカルまたはリモート Web サーバー上のデバッグエンジンが正しく構成されていることを確認してください。 詳細は デバッグエンジンの構成を検証する を参照してください。
読み込まれて Xdebug に関連付けられていると報告されている php.ini ファイルを開きます。
php.ini ファイルで、
[xdebug]セクションを見つけます。xdebug.start_upon_errorの値をデフォルトのデフォルトからはいに変更します。xdebug.remote_modeの値をデフォルトのreqからjitに変更します。
Just-In-Time デバッグと PhpStorm と Xdebug による PHP 例外ブレークポイント(英語)も参照してください
Docker コンテナーで実行される Xdebug を構成する
Docker コンテナーで動作する Xdebug を設定するには、 Dockerfile に Xdebug 固有のパラメーターを指定します:
この例では、 mode および client_host Xdebug パラメーターを提供する /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini を変更しています。
xdebug.client_host の値は、PhpStorm が実行されていて Docker コンテナーからアクセス可能なマシンの IP アドレスに置き換える必要があります。 Docker for Windows または Docker for Mac を利用している場合は、 xdebug.client_host を host.docker.internal に設定することで、ホストの内部アドレスに自動的に解決され、コンテナーから簡単に接続できます。
この例では、 remote_enable および remote_host Xdebug パラメーターを提供する /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini を変更しています。
xdebug.remote_host の値は、PhpStorm が実行されていて Docker コンテナーからアクセス可能なマシンの IP アドレスに置き換える必要があります。 Docker for Windows または Docker for Mac を利用している場合は、 xdebug.remote_host を host.docker.internal に設定することで、ホストの内部アドレスに自動的に解決され、コンテナーから簡単に接続できます。
Vagrant インスタンスで実行する Xdebug を構成する
Vagrant インスタンスで動作する Xdebug を設定するには、 Vagrant マシンに接続し、 php.ini ファイルに Xdebug 固有のパラメーターを指定します:
xdebug.client_host 値は 10.0.2.2 であることに注意してください。 これはデフォルトの Vagrant セットアップで使用されるゲートウェイであり、インスタンスから PhpStorm が実行されているホストへ接続できます。
xdebug.remote_host 値は 10.0.2.2 であることに注意してください。 これはデフォルトの Vagrant セットアップで使用されるゲートウェイであり、インスタンスから PhpStorm が実行されているホストへ接続できます。