久々にLocal上に構築した開発環境にて、VSCodeでデバッグを行おうとしたところ、全くブレークポイントで停止しなくなっていました。
このような問題の原因は、大抵の場合はポートが違うとかリモートデバッグが有効になっていないことが多いです。
とりあえず調べてみると同じような問題を抱えている人のスレッドが公式のフォーラムに見つかりました。
How to get XDEBUG to work with VSCODE when you're using php 7.x?
What is the problem? Local’s XDEBUG configuration is using the syntax compatible with XDEBUG version 3.x. Because there ...
解決手順
見つけたスレッドの対処方法とは少し違いますが、下記の手順にて問題を解決出来ました。
- Xdebugを実行している場合は停止し、VSCodeも念の為に終了しておきます。
- phpinfo()だけを記述したPHPファイルを作成し、Localのpublicディレクトリ以下に配置します。
- ブラウザからphpinfoのページ(先ほど配置したPHPファイル)にアクセスしてXdebugの項目を確認します。特に注意すべき所はリモートポートとリモートデバッグの項目です。私の環境では、後者はenabledであるべきはずですがdisabledになっていました。
- “<Localサイトのディレクトリ>\conf\php\php.ini.hbs”を開き下記を記載します。
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000 - Localでサイトを再起動(site stopからのsite start)します。
- phpinfoのページにアクセスしてリモートデバッグが有効になっていることを確認します。
- VSCodeを起動し、Xdebugの設定は”Listen for Xdebug (Local)”を選択してXdebugを起動します。なお、”Listen for Xdebug 3.0 (Local)”がある場合、これは先ほど指定したポート番号9000とは異なる(9003)なので使用しません。
- サイトにアクセスしてブレークポイントで停止することを確認します。