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が実行されているホストに接続できます。

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

    関連ページ:

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

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

    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拡張機能は、値として指定された、PhpStormが実行されているIPアドレスに接続します。PhpStormはこの接続を受け入れ、それを介してXdebugと通信できます。Xdebugは単一のIPアドレスへの接続のみをサポートし、セキュリティ上の理由から、ブラ...

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

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

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

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

    デバッグ

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