PhpStorm 2020.2 ヘルプ

Xdebug を構成する

Xdebug をダウンロード

  • PHP のバージョンと互換性のある Xdebug 拡張(英語)をダウンロードし、インストールガイド(英語)の説明に従ってインストールします。

    AMP パッケージを使用している場合、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_port="<the port for Xdebug to listen to>" (the default port is 9000)

    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

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

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

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

      これは、php.ini ファイルで指定されているものとまったく同じポート番号でなければなりません。
      xdebug.remote_port = <port_number>
      デフォルトでは、Xdebug はポート 9000 をリッスンします。
    • PhpStorm に Xdebug エンジンからデバッグポートフィールドで指定されたポートを介して入ってくる接続をすべて受け付けるようにするには、外部接続を受け入れるチェックボックスを選択します。

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

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

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

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

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

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

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

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

PhpStorm 2016.2 以降ではオンデマンドモードがサポートされています。このモードでは、グローバル 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 = "<full_path_to_xdebug>"

    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 の動作モードは、xdebug.remote_mode(英語) の設定で切り替わります。この設定は、デフォルトで req に設定されています。このモードは、コマンドラインスクリプトのデバッグと Web サーバーのデバッグの両方で使用できます。

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

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

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

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

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

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

  4. 表示された構成オプションダイアログで、the Add buttonをクリックして新しいエントリを追加し、構成ディレクティブフィールドに -dxdebug.remote_modeフィールドに jit を入力します。

    OK をクリックすると、CLI インタープリターダイアログに戻り、構成オプションフィールドに -dxdebug.remote_mode=jit と表示されます。

Web サーバーのデバッグ

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

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

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

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

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

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

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

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

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

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

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

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

    • php.ini ファイルで [xdebug] セクションを見つけ、xdebug.remote_mode の値をデフォルトの req から jit に変更します。

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

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

    Docker コンテナーで実行される Xdebug を構成するには、Dockerfile に Xdebug 固有のパラメーターを指定します。例:

    #Set up debugger RUN echo "xdebug.remote_enable=1" >> /etc/php/7.0/apache2/php.ini RUN echo "xdebug.remote_host=your_host_name_or_ip" >> /etc/php/7.0/apache2/php.ini

    この例では、Xdebug 拡張へのパスを提供する /etc/php/7.0/apache2/php.ini と、remote_enable および remote_host Xdebug パラメーターを変更しています。

    xdebug.remote_host 値は、Docker コンテナーからアクセス可能な PhpStorm が実行されているマシンの IP アドレスに置き換える必要があることに注意してください。Windows 用 Docker(英語) または Mac 用 Docker(英語) を使用している場合は、xdebug.remote_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 が実行されているホストに接続できます。

    最終更新日 :

    関連ページ:

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

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

    PHP

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

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

    デバッグセッションを開始すると、Xdebug 拡張機能は、値として指定された、PhpStorm が実行されている IP アドレスに接続します。PhpStorm はこの接続を受け入れ、それを介して Xdebug と通信できます。Xdebug は、単一の IP アドレスへの接続のみをサポートし、セキュリ...

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

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

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

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

    デバッグ

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