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
と入力し始めます。候補リストで、PHP インタープリターを変更するアクションを選択します。必要に応じて、Alt+Enter を押して候補リストで直接、またはキーボードショートカットに従って、このアクションのキーボードショートカットを割り当てることができます。
選択したインタープリターは、設定ダイアログ (Ctrl+Alt+S) の PHP ページでデフォルトのプロジェクトインタープリターとして設定されます。これは、デフォルトのプロジェクトインタープリター ( テストフレームワーク、品質ツール、実行 / デバッグ構成 ) を使用する構成と、PhpStorm ターミナルで実行されるコマンドにも影響します。
コマンドラインからデバッグセッションを開始する
CLI スクリプトの実行時に PhpStorm でデバッグセッションを開始する前に、次の要件のいずれかが満たされていることを確認してください。
Xdebug の
remote_autostart
(Xdebug 2 の場合)またはstart_with_request
(Xdebug 3 の場合)オプションが有効になっています。XDEBUG_CONFIG
環境変数が存在します。
受信デバッガー接続のリッスン
PhpStorm で、ツールバーの をクリックするかデバッグツールウィンドウが自動的に開きます。スクリプトを起動する前に、ブレークポイントが設定されているか、設定ダイアログ Ctrl+Alt+S のデバッグページで PHP スクリプトの最初の行で中断するオプションが有効になっていることを確認してください。
を選択して、受信デバッグ接続をリッスンできるようにします。これにより、デバッグセッションの開始時に PhpStorm が反応し、デバッガーオプションを使用してスクリプトを開始する
コマンドラインからスクリプトを開始するため、デバッガーを有効にするために必要な設定で起動されていることを確認する必要があります。
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 デバッガーには、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 プロジェクトがまだない場合でも、PHPCLI スクリプトをすばやくデバッグできます。
関連ページ:
Xdebug を構成する
Xdebug をダウンロード PHP バージョンと互換性のある Xdebug 拡張をダウンロードし、Xdebug インストールガイドの説明に従ってインストールします。事前構成された AMP (Apache、MySQL、PHP) パッケージを使用している場合は、Xdebug 拡張機能がすでにインストールされている可能性があります。パッケージに固有の手順を参照してください。Xdebug と PHP エンジンの統合アクティブな php.ini ファイルをエディターで開きます。デバッグエンジンが PhpStor...
Zend デバッガーの構成
Zend デバッガーをダウンロードしてインストールするお使いのオペレーティングシステムに対応した Zend デバッガーパッケージをダウンロードしてください。PHP のバージョンに対応するディレクトリ(php-7.0.x など)で ZendDebugger.so(UNIX) または ZendDebugger.dll(Windows) ファイルを見つけます。Web サーバーからアクセス可能な場所に Web サーバーにファイルをコピーします。Zend デバッガーと PHP インタープリターの統合を有効にするエ...
実行 / デバッグ構成
PhpStorm は、実行 / デバッグ構成を使用して、コードを実行、デバッグ、テストします。各構成は、何を実行し、どのパラメーターと環境を使用するかを定義する、名前付きのスタートアッププロパティのセットです。実行 / デバッグ構成には 2 つのタイプがあります。一時的 — コンテキストメニューからを選択するたびに作成されます。コンテキストメニューを呼び出すには、オブジェクトまたは領域を右クリックします。永続的 — テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成されま...
プロジェクトツールウィンドウ
プロジェクトツールウィンドウを使用すると、さまざまな視点からプロジェクトを確認し、新しい項目 (ディレクトリ、ファイル、クラスなど) の作成、エディターでのファイルのオープン、必要なコードフラグメントへの移動などのさまざまなタスクを実行できます。このビューには、作成されたスクラッチファイル、クエリコンソール、拡張スクリプトを管理できるスクラッチとコンソールフォルダーも含まれています。ビュー:ツールウィンドウにはいくつかのビューがあります。プロジェクトビュー。このビューには、すべてのプロジェクト...
デバッグツールウィンドウ
デバッガーセッションを開始すると、デバッグツールウィンドウが表示されます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ(フレーム、変数など)を表示および分析し、さまざまなデバッガーアクションを実行します。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。ツールウィンドウのタブを切り替えるには、とを押します。セッション:使用可能なデバッグセッションは、デバッグツールウィンドウの上部
ブレークポイント
ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、たとえば、特定のコード行に到達したときにプログラムを一時停止するなどの単純なものから、追加の条件をチェックしたり、ログに書き込んだりするなどのより複雑なロジックを含むものまであります。ブレークポイントは、一度設定すると、一時的なブレークポイントを除き、明示的に削除するまでプロジェクト内に残ります。ブレークポイントの種類:PhpSto