CakePHP4を試す


環境構築 - Vagrant で LAMP 環境を構築 (10) -

XDebugでソースレベルデバッグをしたい

実際にプログラムを組み始めると、デバッグをすることになります。自分がコーディングした部分であればprintfデバッグでもなんとかなりますが、やはりソースレベルデバッグができると便利です。
今回は、XDebugを使えるようにしたいと思います。
実行環境は次のようになります。

  • リモート
    VartualBoxの仮想マシンに構築したUbuntu Linux 18.04
    Webサーバ
    Apache2
    PHP
    バージョン7.4
  • ローカル
    Windows 10
    IDE
    Visual Studio Code

以前環境構築 - Vagrant で LAMP 環境を構築 (1) -でXDebugパッケージをインストールしていますので、設定から始めたいと思います。
まずは、PHPのiniファイルの設定を行います。

/etc/php/7.4/mods-available/xdebug.ini
zend_extension=xdebug.so

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_host = none
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000

1行目はパッケージをインストールした時点で記述されています。
3~7行目を追加します。

次にVisual Studio Codeの設定です。
メニューから[実行]-[構成を開く]を選択します。

Listen for XDebugに対して設定を編集します。

    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000,
            "pathMappings": {
                "/vagrant_data": "${workspaceFolder}",
            }
        },

11行目は、xdebug.inixdebug.remote_portに合わせます。
12~14行目を追加します。
リモートのパス:ローカルのパスとなるようにします。
リモートのパス(PHPファイルのパス)をローカルのパスに変換するテーブルのようで、該当するファイルが見つからない場合は、リモートのパスでファイルが見つからないというエラーメッセージが出ます。

設定ができたら任意のブレークポイントを設定して、メニューから[実行]-[デバッグの開始]を選択するか、F5を押してデバックを開始します。

ブラウザでページにアクセスするとブレイクポイントで停止すると思います。
また、変数のインスペクトもできると思います。

以上で、XDebugが利用できるようになりました。

参考サイト

Visual Studio CodeでPHPのリモートデバッグ環境を構築する
[PHP] Xdebug のリモートデバッグ、理解していますか?