PHP CLI スクリプトをデバッグする
PHP アプリケーションは、必ずしも Web アプリケーションではありません。 さまざまなコマンドラインツール、デーモン、メッセージキュー処理アプリケーション、その他の種類のアプリケーションは、通常、PHP CLI で実行されます。 PHP CLI デバッグセッションを開始するには、いくつかの方法があります。 PhpStorm 内から起動し、スクリプトを開始してデバッガーをアタッチできます。 または、PhpStorm で受信デバッガー接続をリッスンし、IDE の外部でスクリプトを開始することもできます。 両方のオプションを見てみましょう。
デバッグを開始する前に、デバッグエンジンがインストールされ、適切に構成されていることを確認してください。 PhpStorm は、Xdebug を起動して実行するプロセスを自動化します。 デバッガーをインストールせずにデバッグセッションを初めて実行しようとすると、IDE によって、関連するバージョンの Xdebug をダウンロードしてインストールするように求められます。

「Xdebug 拡張機能のダウンロードとインストール」 をクリックすると、PhpStorm が Xdebug をダウンロードし、関連する PHP 構成ファイルを変更します。 インストールプロセスをより細かく制御したい場合は、 インストールスクリプトを生成する をクリックしてコマンドを手動で実行します。
あるいは、 Xdebug を構成する および Zend デバッガーの構成 に従って、デバッグエンジンを手動でインストールして構成することもできます。
PhpStorm からデバッグセッションを開始する
PhpStorm 内から PHP CLI スクリプトのデバッグを開始するには、次の手順を実行します。
実行 / デバッグ構成を作成する
PhpStorm は、 実行 / デバッグ構成を使用して IDE 内からスクリプトを実行します。 構成では、PHP インタープリターの追加の引数を定義したり、スクリプトを開始する前に他のコマンドを起動したりできます。 PhpStorm 内からデバッガーを起動するには、実行 / デバッグ構成が必要です。
PHP スクリプトの実行 / デバッグ構成を手動で作成する
メニューを使用して新しい実行 / デバッグ構成を作成します。
PHP スクリプト型の新しい構成を追加し、実行するスクリプトなどの必要なパラメーターを指定します。
作成した実行 / デバッグ構成を保存します。
PHP スクリプト用の実行 / デバッグ構成を生成する
プロジェクトツールウィンドウを右クリックして、コンテキストメニューから を選択します(必ず
のマークが付いたアイテムを選択してください)。 または、エディターでスクリプトを開き、 Alt+Shift+F9 を押して、デバッグするスクリプトを選択します。
IDE はデバッガーを有効化してスクリプトを起動し、 デバッグツールウィンドウ を開きます。
デバッガーを起動する
デバッガーを起動する前に、 ブレークポイントが設定されているか、 設定 ダイアログ Ctrl+Alt+S の デバッグ ページで PHP スクリプトの最初の行で中断する。 オプションが有効になっていることを確認してください。
PhpStorm ツールバーの
をクリックします。
Alt+Shift+F9 を押す。
メインメニューから を選択します。
構成済みの PHP インタープリターをオンザフライで切り替える
Ctrl+Shift+A を押して、
Change PHP interpreterと入力し始めます。 候補リストで、 Change PHP interpreter アクションを選択します。必要に応じて、 Alt+Enter を押して候補リストで直接、または キーボードショートカット に従って、このアクションのキーボードショートカットを割り当てることができます。
表示されるポップアップメニューで、構成済みの ローカルまたは リモート PHP インタープリターのいずれかを選択します。
選択したインタープリターは、 設定 ダイアログ(Ctrl+Alt+S )の PHP ページでデフォルトのプロジェクトインタープリターとして設定されます。 これは、デフォルトプロジェクトインタープリターを使用する構成(テストフレームワーク、 品質ツール、 実行 / デバッグ構成 )や、 PhpStorm ターミナルで実行されるコマンドにも影響します。

コマンドラインからデバッグセッションを開始する
CLI スクリプト実行時に PhpStorm でデバッグセッションを開始する前に、次の要件のいずれかが満たされていることを確認してください:
Xdebug の
remote_autostart(Xdebug 2 の場合)またはstart_with_request(Xdebug 3 の場合)オプションが有効になっています。XDEBUG_CONFIG環境変数が存在します。
受信デバッガー接続のリッスン
PhpStorm で、ツールバーの をクリックするか を選択して、受信デバッグ接続をリッスンできるように有効化します。 これにより、デバッグセッションの開始時に PhpStorm が反応し、 デバッグツールウィンドウが自動的に開きます。 スクリプトを起動する前に、 ブレークポイントが設定されているか、 設定 ダイアログ Ctrl+Alt+S の デバッグ ページで PHP スクリプトの最初の行で中断する。 オプションが有効になっていることを確認してください。
デバッガーオプションを使用してスクリプトを開始する
コマンドラインからスクリプトを開始するため、デバッガーを有効にするために必要な設定で起動されていることを確認する必要があります。
Xdebug でスクリプトを始める
Xdebug には、PHP インタープリターが PhpStorm にアクセスできるようにするために使用できる さまざまな構成オプションがあります。 これらのパラメーターは、 -d コマンドラインパラメーターを使用して PHP インタープリターに渡す必要があります。 または、環境変数を設定して、毎回 -d パラメーターを指定する必要がないようにすることもできます。
PHP コマンドラインスイッチを使用したデバッグでスクリプトを開始する
次のコマンドラインオプションを使用して PHP を起動します。
php -d xdebug.mode=debug -d xdebug.client_host=127.0.0.1 -d xdebug.client_port=9003 -d xdebug.start_with_request=yes path/to/script.phpphp -d xdebug.remote_enable=1 -d xdebug.remote_mode=req -d xdebug.remote_port=9000 -d xdebug.remote_host=127.0.0.1 -d xdebug.remote_connect_back=0 path/to/script.php
環境変数を使用してデバッグしながらスクリプトを起動する
Xdebug を設定する環境変数を設定します。
Windows の場合:
set XDEBUG_MODE=debug& set XDEBUG_SESSION=1set XDEBUG_CONFIG=remote_enable=1 remote_mode=req remote_host=127.0.0.1 remote_port=9000 remote_connect_back=0macOS/Linux の場合
export XDEBUG_MODE=debug XDEBUG_SESSION=1export XDEBUG_CONFIG="remote_enable=1 remote_mode=req remote_host=127.0.0.1 remote_port=9000 remote_connect_back=0"
スクリプトを正常に開始します。
php path/to/script.phpオプションで、Xdebug の remote_autostart(英語) (Xdebug 2 の場合)または start_with_request(英語) (Xdebug 3 の場合)設定を使用して、実行されるすべてのスクリプトのデバッグセッションを常に開始できます。
Zend デバッガーでスクリプトを起動する
Zend Debugger には、PHP インタープリターが PhpStorm にアクセスできるようにするために使用できる さまざまな構成オプションがあります。 これらのパラメーターは、環境変数を使用して PHP インタープリターに渡す必要があります。
デバッグしながらスクリプトを起動する
QUERY_STRING環境変数を設定します。set QUERY_STRING=start_debug=1&debug_host=127.0.0.1&no_remote=1&debug_port=10137&debug_stop=1export QUERY_STRING="start_debug=1&debug_host=127.0.0.1&no_remote=1&debug_port=10137&debug_stop=1"スクリプトを正常に開始します。
php path/to/script.php
必要に応じて、特定のマシンからの接続で使用するパスマッピング構成を PhpStorm に伝えるには、 PHP_IDE_CONFIG 環境変数の値を serverName=SomeName に設定します。ここで SomeName は、 設定 ダイアログの ページで設定されたサーバー名です(Ctrl+Alt+S)。
デバッグ
スクリプトが開始されると、PhpStorm は デバッグツールウィンドウ を開き、スクリプトで設定された最初のブレークポイントで停止します。 中断されたプログラムを調べる の説明に従って、PHP CLI スクリプトのデバッグを続行できます。
デバッグ中のスクリプトが PhpStorm で開いているプロジェクトの一部でない場合でも、IDE はエディターでそのスクリプトを開き、最初のステートメントで実行を一時停止します。 これにより、PhpStorm プロジェクトがまだない場合でも、任意の PHP CLI スクリプトをすばやくデバッグできます。