VscodeでPHPをデバッグする方法(Xdebug)

PHP

VscodeでPHPをデバッグする設定がちょっと複雑だったのとCLIデバッグで分かりやすい解説サイトがあまりなかったので、備忘録として残します。

この方法はXammpなどのローカルサーバーのPHPだけでなく、PCに直接インストールしている場合でも使用可能です。

※CLIデバッグとはphpファイルを直接実行する際にするデバッグです。
※Windows11での方法です。

はじめに:PHPデバッグは2通りある

PHPは大きく以下2通りの実行パターンがあります。

実行方法具体例
Webサーバー経由ブラウザからアクセス(WordPressやLaravelなど)
CLI経由ターミナルから php myscript.php など実行

実は、Xdebugの使い方も少し違います。
以下で、両方のやり方を解説していきます。

事前準備

Vscodeのインストール

今回ご紹介する方法は、Vscodeエディタが必要です。インストールしていない方はこちらからインストールしてください。

Vscode拡張機能「PHP Debug」をインストール

下記の手順でVscode拡張機能「PHP Debug」をインストールしてください。

手順

①拡張機能をクリックし、「PHP Debug」で検索し、拡張機能をクリック

②インストールをクリック

PHPの実行ファイルを設定する

①Vscodeの設定を開き、「php.validate.executable.path」で検索し、setting.jsonで編集をクリック

②setting.jsonへPHPの実行ファイルパスを設定する

{
    "php.validate.executablePath": "C:\\pg\\php-8.4.8-nts-Win32-vs17-x64\\php.exe"
}

Xdebugのダウンロードし、extへ配置

Xdebugのインストールページへアクセスし、テキストボックスに「phpinfo」の情報を貼り付けてインストールします。

手順

①phpファイルを作成し、下記コードを貼り付けます。

// phpinfo.php
<?php
phpinfo();
?>

②ターミナル(Ctrl+Shift+@キー)を開き、ビルトインサーバーを起動します。

// ビルトインサーバー起動するコマンド
php -S localhost:8000

③ブラウザを開いて、作成したphpファイルへアクセスし、設定を「Ctrl+Aキー」で全選択し、コピーする
※ファイル名が「phpinfo.php」の場合→http://localhost:8000/phpinfo.php

④Xdebugのインストールページを開き、テキストボックスにコピーした設定を貼り付け、ボタンをクリック

⑤リンクをクリックしてダウンロードする。

⑥extディレクトリに配置する
 実行ファイル(php.exe)があるディレクトリの「ext」フォルダへダウンロードしたバイナリファイルを配置

php.iniへ設定を追加

Xdebugを使用するための設定をphp.iniへ追加する

最終行に下記を追加する

[xdebug]
zend_extension = "ダウンロードしたXdebugのバイナリファイルのパス"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=localhost
xdebug.client_port=9003

※注意! Xdebugの設定はデバッグするとき以外はコメントアウト等で無効化することが推奨です。オーバーヘッドが発生し、動作が遅くなります。

上記で事前準備は完了です。

Webサーバー経由

他のプログラミング言語でデバッグしたことある人はあんまりなじみがないかもしれません。
イメージはデバッグ用のサーバー(Xdebug)を起動してから、デバッグしたいファイルが配置してあるページのサーバーを起動させのリクエストが来た時に、Xdebugで受け取りステップインでデバッグできるというものです。

手順

設定

①デバッグで実行をクリック→launch.jsonを作成をクリック→PHPをクリック

②launch.jsonが生成されるので「listen for xdebug」をクリックし、ひな形を選択し、設定完了

動作確認方法

①Vscodeを開いた状態でF5キーを押して、Xdebug(サーバー)を起動

②下記コマンドでビルトインサーバーを立ち上げる
 ※サーバー内にphpファイルを作成している場合はサーバーを起動する

php -S localhost:8000

④ブレークポイントを設定する

⑤ブラウザでphpファイルにアクセスする
 下記のようにブレークポイントで停止すれば正常に動作しています

CLI経由

phpファイルを直接実行して、デバッグする方法です。

手順

設定

作業ディレクトリの.vscodeフォルダ直下(無い場合は作成する)に「launch.json」ファイルを作成し、下記の設定を貼り付ける
※「実行ファイル名」と「php.exeのファイルパス」は環境に合わせて変更してください

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "PHP CLI デバッグ",
      "type": "php",
      "request": "launch",
      "program": "${workspaceFolder}/実行ファイル名.php",
      "cwd": "${workspaceFolder}",
      "runtimeExecutable": "php.exeのファイルパス"
    }
  ]
}

動作確認方法

F5キーを押して、指定ファイル実行
 下記のようにブレークポイントで停止すれば正常に動作しています

まとめ

  • VscodeでPHPデバッグを行うには、Xdebugのインストール・設定が必須
  • Webサーバー経由CLI経由で設定が異なるため、用途に応じた設定が必要

コメント

タイトルとURLをコピーしました