PhpStorm 2020.3 ヘルプ

Xdebug を構成する

Xdebug をダウンロード

Xdebug と PHP インタープリターを統合する

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

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

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

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

  2. Xdebug をブロックする Zend デバッガーおよび Zend Optimizer ツールを無効にするには、php.ini ファイルの次の行を削除またはコメントアウトします。

    zend_extension=<path_to_zend_debugger> zend_extension=<path_to_zend_optimizer>
  3. Xdebug を有効にするには、php.ini ファイルで [xdebug] セクションを見つけるか作成して、次のように更新します。

    [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] 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.idekey 設定を見つけて、それに任意の値を割り当てます。この値は、Xdebug プロキシサーバーに IDE を登録するために使用されます。

  4. php.ini ファイルを保存して閉じます。

  5. 次のいずれかを実行して、Xdebug のインストールを確認します。

    • コマンドラインで次のコマンドを実行します。

      php --version

      出力は、インストールされた拡張の中で Xdebug をリストするはずです:

      Xdebug extension installed
    • 次のコードを含む php ファイルを作成します。

      <?php phpinfo();

      ブラウザーでファイルを開きます。 phpinfo 出力には、Xdebug セクションが含まれている必要があります。

      Xdebug support enabled

PhpStorm で Xdebug を構成する

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

  2. 選択した PHP インタープリターに関連付けられている Xdebug のインストールを確認します。

    1. PHP ページで、CLI インタープリターリストから関連する PHP インストールを選択し、フィールドの横にあるthe Browse buttonをクリックします。リストには PhpStorm で利用可能なすべての PHP インストールが表示されます。ローカル PHP インタープリターを構成するリモート PHP インタープリターの構成を参照してください。

    2. 開いている CLI インタープリターダイアログには、次の情報が表示されます。
      • 選択した PHP インストールのバージョン。

      • 選択した PHP インストールに関連付けられているデバッグエンジンの名前とバージョン(Xdebug または Zend デバッガー)。デバッガーが構成されていない場合、PhpStorm は対応するメッセージを表示します。

        ps_interpreters_debugger_not_installed.png

    または、インストールウィザード(英語)を開き、phpinfo() の出力をペーストし、phpinfo() 出力を分析するをクリックします。デバッグエンジンの構成を検証するでの Xdebug のインストールの確認の詳細を参照してください。

  3. Xdebug の動作を定義します。PHP ノードにあるデバッグをクリックします。表示されるデバッグページで、Xdebug エリアで次の設定を指定します。

    • デバッグポートフィールドで、ツールが PhpStorm と通信するのに使用するポートを指定します。

      これは、php.ini ファイルで指定されているものと同じポート番号である必要があります。

      xdebug.remote_port="<the port (9000 by default) to which Xdebug connects>"
      xdebug.client_port="<the port (9003 by default) to which Xdebug connects>"

      デフォルトでは、Xdebug2 はポート 9000 でリッスンします。Xdebug 3(英語) の場合、デフォルトのポートが 9000 から 9003 に変更されました。複数のポートをコンマで区切って指定できます。デフォルトでは、デバッグポート値は 9001,9003 に設定されており、PhpStorm が両方のポートで同時にリッスンします。

    • PhpStorm がデバッグポートフィールドで指定されたポートを介して Xdebug エンジンからの受信接続を受け入れるようにするには、外部接続を受け入れ可能チェックボックスを選択します。

    • パスマッピングが指定されていないときに最初の行で強制的にブレークするチェックボックスを選択すると、デバッガーがサーバーページのプロジェクト内のファイルにマップされていないファイルに到達するとすぐに停止します。デバッガーはこのファイルの最初の行で停止し、変数の調査 / 更新は次のエラーメッセージを表示します:サーバー上のファイルのローカルコピーを見つけることができません <サーバー上のファイルへのパス> とリンククリックしてマッピングを設定します。リンクをクリックしてパスマッピングの問題を解決するダイアログを開き、問題のファイルをローカルコピーにマップします。

      このチェックボックスをオフにすると、デバッガーはマップされていないファイルに到達して開くときに停止せず、ファイルが処理されただけでエラーメッセージは表示されません。

    • スクリプトがプロジェクト外にあるときに最初の行で強制的にブレークするチェックボックスを選択すると、現在のプロジェクトの外にあるファイルを開いてすぐにデバッガーを最初の行に停止させることができます。このチェックボックスをオフにすると、現在のプロジェクトの外部にあるファイルを開くとデバッガーが続行されます。

  4. 外部接続領域で、デプロイサーバー構成として登録されていないホストおよびポートを介して受信した接続を PhpStorm でどのように処理するかを指定します。

    • 未登録のサーバー構成による外部接続を無視する : PhpStorm がデプロイサーバー構成として登録されていないホストおよびポートから受信した接続を無視するようにするには、このチェックボックスを選択します。このチェックボックスが選択されていると、PhpStorm はデプロイサーバー構成を自動的に作成しようとしません。

    • PHP スクリプトの最初の行で中断する : このチェックボックスを選択すると、デバッガーと PhpStorm との間の接続が確立されるとすぐに(最初のブレークポイントに達するまで自動的に実行されるのではなく)デバッガーが停止します。あるいは、メインメニューから実行 | PHP スクリプトの最初の行で中断するオプションをオンにします。

    • 最大同時接続数 : このスピンボックスを使用して、同時に処理できる外部接続の数を制限します。

オンデマンドモードで使用するための Xdebug の構成

PhpStorm はオンデマンドモードをサポートします。このモードでは、グローバル PHP インストールの Xdebug を無効にし、コマンドラインスクリプトをデバッグしているとき、またはコードカバレッジレポートが必要な場合にのみ、オンデマンドで自動的に有効にすることができます。これにより、コマンドラインスクリプト(Composer と単体テストを含む)をはるかに高速に実行できます。

  1. コマンドラインスクリプトで Xdebug を無効にする:

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

    2. PHP 実行可能ファイルリストから適切な PHP インタープリターを選択し、その横にあるthe Browse buttonをクリックします。開いた CLI インタープリターダイアログで、構成ファイル: <php.ini へのパス> ファイルの横にあるエディターで開くリンクをクリックします。すべてのダイアログを閉じて、php.ini ファイルが開かれているタブに切り替えます。

    3. php.ini ファイルで、[xdebug] セクションを見つけ、; を前置詞に追加して次の行にコメントします。

      ;[xdebug] ;zend_extension = "<path to xdebug extension>"

    4. CLI インタープリターダイアログを開き、PHP 実行可能ファイルフィールドの横にあるthe Reload buttonをクリックします。PhpStorm は、デバッガーがインストールされていないことを通知します。

      ps_interpreters_debugger_not_installed.png

  2. 必要に応じて PhpStorm が Xdebug をアクティブにできるようにするには、追加領域のデバッガー拡張フィールドにそのパスを指定します。パスを手動で入力するか、the Browse buttonをクリックして表示されるダイアログで場所を選択します。

Just-In-Time モードで使用するための Xdebug の構成

PhpStorm は、ジャストインタイム (JIT) モードでの Xdebug の使用をサポートしているため、コードに常にアタッチされるわけではありませんが、エラーが発生するか例外がスローされた場合にのみ PhpStorm に接続します。使用する Xdebug のバージョンに応じて、この操作モードは次の設定で切り替えられます。

このモードは、コマンドラインスクリプトのデバッグと Web サーバーのデバッグの両方に使用できます。

コマンドラインスクリプトをデバッグするのか、Web サーバーを使用するのかに応じて、以下のいずれかのシナリオを使用します。

コマンドラインスクリプト

コマンドラインスクリプトをデバッグする場合は、追加の構成オプションとしてカスタム -dxdebug.remote_mode=jit (Xdebug 2 の場合)または -dxdebug.start_upon_error=yes (Xdebug 3 の場合)ディレクティブを指定します。

  1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、言語 & フレームワーク | PHP にナビゲートします。

  2. PHP 実行可能ファイルリストから、関連する PHP インタープリターを選択し、その横にあるthe Browse buttonをクリックします。

  3. 開いた CLI インタープリターダイアログで、追加領域の構成オプションフィールドの横にあるthe Browse buttonをクリックします。

  4. 開いた構成オプションダイアログで、the Add buttonをクリックして新しいエントリを追加します。

    • Xdebug 2 の場合、構成ディレクティブフィールドに xdebug.remote_mode と入力し、フィールドに jit と入力します。

    • Xdebug 3 の場合、構成ディレクティブフィールドに xdebug.start_upon_error と入力し、フィールドに yes と入力します。

    OK をクリックすると、CLI インタープリターダイアログに戻り、構成オプションフィールドに -dxdebug.remote_mode=jit (Xdebug 2 の場合)または -dxdebug.start_upon_error=yes (Xdebug 3 の場合)が表示されます。

Web サーバーのデバッグ

  1. メインメニューから実行 | Web サーバーのデバッグ検証を選択します。

  2. 開いているリモート環境の検証で、Web サーバーを選択してデバッガーを検証します。

    • ローカル Web サーバーに関連付けられたデバッガーをチェックするには、ローカル Web サーバーまたは共有フォルダーを選択します。

      • 検証スクリプトを作成するパス : このフィールドでは、検証スクリプトが作成されるサーバードキュメントルートのフォルダーへの絶対パスを指定します。タイプ所定の位置にの Web サーバーの場合、フォルダーはプロジェクトルートにあります。

        フォルダーは http を介してアクセスできる必要があります。

      • 検証スクリプトへの URL : このフィールドに、検証スクリプトが作成されるフォルダーの URL アドレスを入力します。プロジェクトルートが http を介してアクセス可能なフォルダーにマップされている場合、プロジェクトルートまたはそにある他のフォルダーを指定できます。

    • リモートサーバーに関連付けられているデバッガーをチェックするには、リモート Web サーバーを選択します。

      • 検証スクリプトを作成するパス : このフィールドでは、検証スクリプトが作成されるサーバードキュメントルートのフォルダーへの絶対パスを指定します。フォルダーは http を介してアクセスできる必要があります。

      • デプロイサーバー : このフィールドに、ターゲット環境にアクセスするためのタイプローカルサーバーまたはリモートサーバーのサーバーアクセス構成を指定します。詳しくは Web サーバーとの同期を構成するを参照してください。

        リストから構成を選択するか、デプロイダイアログ参照 the Browse button をクリックします。

  3. 検証をクリックして、PhpStorm で検証スクリプトを作成し、ターゲットリモート環境にデプロイして実行します。

  4. 読み込まれて Xdebug に関連付けられていると報告されている php.ini ファイルを開きます。

  5. php.ini ファイルで、[xdebug] セクションを見つけます。

    xdebug.remote_mode の値をデフォルトの req から jit に変更します。

    xdebug.start_upon_error の値をデフォルトの default から yes に変更します。

Just-In-Time デバッグと PhpStorm と Xdebug による PHP 例外ブレークポイント(英語)も参照してください

Docker コンテナーで実行される Xdebug を構成する

Docker コンテナーで動作する Xdebug を設定するには、Dockerfile に Xdebug 固有のパラメーターを指定します。

RUN pecl install xdebug \ && docker-php-ext-enable xdebug && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.remote_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \

この例では、remote_enable および remote_host Xdebug パラメーターを提供する /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini を変更しています。

xdebug.remote_host 値は、Docker コンテナーからアクセス可能な PhpStorm が実行されているマシンの IP アドレスに置き換える必要があることに注意してください。Windows 用 Docker(英語) または Mac 用 Docker(英語) を使用している場合は、xdebug.remote_hosthost.docker.internal に設定できます。これにより、ホストの内部アドレスに自動的に解決され、コンテナーからホストに簡単に接続できます。

RUN pecl install xdebug \ && docker-php-ext-enable xdebug && echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.client_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \

この例では、mode および client_host Xdebug パラメーターを提供する /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini を変更しています。

xdebug.client_host 値は、Docker コンテナーからアクセス可能な PhpStorm が実行されているマシンの IP アドレスに置き換える必要があることに注意してください。Windows 用 Docker(英語) または Mac 用 Docker(英語) を使用している場合は、xdebug.client_hosthost.docker.internal に設定できます。これにより、ホストの内部アドレスに自動的に解決され、コンテナーからホストに簡単に接続できます。

Vagrant インスタンスで実行する Xdebug を構成する

Vagrant インスタンスで Xdebug を実行するように設定するには、Vagrant マシンに接続し、php.ini ファイルで Xdebug 固有のパラメーターを指定します。

[xdebug] zend_extension="<path to xdebug extension>" xdebug.remote_enable=1 xdebug.remote_host=10.0.2.2 xdebug.remote_port=9000

xdebug.remote_host 値は 10.0.2.2 であることに注意してください。これは、デフォルトの Vagrant セットアップで使用されるゲートウェイであり、インスタンスから PhpStorm が実行されているホストに接続できます。

[xdebug] zend_extension="<path to xdebug extension>" xdebug.mode=debug xdebug.client_host=10.0.2.2 xdebug.client_port=9003

xdebug.client_host 値は 10.0.2.2 であることに注意してください。これは、デフォルトの Vagrant セットアップで使用されるゲートウェイであり、インスタンスから PhpStorm が実行されているホストに接続できます。

関連ページ:

AMP パッケージをインストールする

AMP パッケージはオペレーティングシステム固有のものです。最も一般的なものは次のとおりです。Windows 用のXAMPP。使用されている Linux ディストリビューションと互換性のある LAMP パッケージ。macOS 用のMAMP。バージョン 1.7.1 以降を使用することをお勧めします。イ...

PHP

このノードのページとすべてのページは、PHPプラグインが有効になっている場合にのみ使用できます。PHPプラグインは PhpStorm にバンドルされており、デフォルトで有効になっています。プラグインが無効になっている場合は、プラグインの管理に従って、設定 / 環境設定 | プラグインページでプラグイ...

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

デバッグセッションを開始すると、Xdebug 拡張機能は PhpStorm が実行されている IP アドレスに接続し、(Xdebug 2 の場合)または(Xdebug 3 の場合)の値として指定されます。PhpStorm はこの接続を受け入れ、それを介して Xdebug と通信できます。Xdebug...

リモート PHP インタープリターの構成

リモート PHP インタープリターという用語は、リモートホストまたは仮想環境にインストールされた PHP エンジンを意味します。リモート PHP インタープリターという用語は、コンピューターにインストールされているローカル PHP インタープリターの反対語として使用されます。ローカル PHP インタ...

デバッグエンジンの構成を検証する

PhpStorm は、XdebugまたはZend デバッガーの構成を検証し、一部の設定が欠落しているか、他の設定と矛盾していないかを通知します。プロジェクトの PHP インタープリターを構成するとき、PhpStorm は、デバッガーがローカルの PHP 開発環境にインストールされているかどうかを通知...

デバッグ

このページは、PHPプラグインが有効になっている場合にのみ使用できます。PHPプラグインは PhpStorm にバンドルされており、デフォルトでアクティブになっています。プラグインが無効になっている場合は、プラグインの管理に従って、設定 / 環境設定 | プラグインページでプラグインを有効にしま...