XAMPPとVSCodeの最新版をインストールしてXdebugを導入した際に、過去の設定ではしっかりと機能していたデバッグの機能(ブレークポイント)が効きませんでした…。
解決策がなかなか見つからずに3時間ほど苦戦したのでメモとして残します。
目次
広告
【現象】参考サイト通りに設定したのにブレークポイントが機能しない…?
XAMPPとVSCodeは下記のバージョンをインストールしました。
- XAMPP:8.0.0 / PHP 8.0.0
- Visual Studio Code :バージョン1.52.1
各種インストールの方法は下記記事を参考にして進めました。
XAMPP:今さら聞けない!XAMPPをインストールする方法【超初心者向け】
Visual Studio Code: Visual Studio Codeインストール手順<Windows向け>
各種ソフトのインストールは完了したので、次にPHPのデバッグ作業を行うためにXAMPP環境でのデバッグ環境を整えます。
デバッグには「Xdebug」を活用しますので、下記辺りの記事を参考にして設定を行いました。
私の場合は「php_xdebug-3.0.1-8.0-vs16-x86_64.dll」をダウンロードしました。
上記設定を済ませてVSCodeでブレークポイントを張ってデバッグを実行してみましたが、何度試してもブレークポイントで止まらずにそのままページが表示されてしまいました…。
設定を再確認しても間違っている箇所はないため、下記記事なども参考にして色々と試しましたが、いずれも解決には至りませんでした。
- [XAMPP Mac]VSCodeでPHPのXdebugを使いデバッグ!しかしブレークポイントが止まらない
- VisualStudioCodeのデバッグでどうしてもブレークで止まらない場合 (PHP Xdebug)
- xdebugの導入:xdebugは動いているみたいだけどbreakpointで止まらない
phpinfoの内容が解決のヒントに
お手上げ状態で2時間ほど解決策を探していたところ、phpinfoの情報に今まで見なかった下記の記述を見つけました。
過去の設定では見た覚えがなかったのでほぼそのままコピペしてGoogleさんで検索してみると、下記のような記事が見つかりました。
参考記事のタイトルにもなっていますが、どうやらXdebugは2系から3系に変わったことで設定の方法が変わったようです。
php.iniファイルへの記述をXdebugの仕様変更に合わせて修正することで問題を解決
具体的にはphp.iniへの記述が下記のように変わったみたいです。
Xdebug2系のphp.iniファイルの記述
[xdebug]
xdebug.remote_enable=1
xdebug.remote_autostart=1
Xdebug3系のphp.iniファイルの記述
[xdebug] xdebug.mode=debug xdebug.start_with_request=yes
全然違いますね…。
上記に加えて、デフォルトのポート設定も変わったみたいなのでphp.iniのXdebugの設定を下記のように変更しました。
[xdebug] zend_extension = C:\xampp\php\ext\php_xdebug-3.0.1-8.0-vs16-x86_64.dll xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_port=9000
上記設定後にXAMPPを再起動して再びブレークポイントを試したところ、無事ブレークポイントで処理が止まるようになりました。
今回の問題は解決策にたどり着ける記事がなかなか出てこなかったので、もし同じような問題が発生して困っている方がいたら参考にしていただきたいです。
記事の内容でデバッグできるようになりました。
助かりました。ありがとうございます!
お役に立てて良かったです!
なかなか関連記事が見つからないので解決が難しいですよね( ;∀;)
3時間程、お手上げ状態でしたが、ようやくブレークポイントに止まってくれました!
この記事のおかげで助かりました!
感謝致します!!
お役に立てて良かったです!(*^-^*)
いろんなサイト通りにやっても上手くいかなかったのが解決しました、ありがとうございます!ほとんどのサイトが1年以内ぐらいの更新にも関わらず……web関係は進むのが早くて難しいですね(´-ω-`;)
お役に立てて良かったです!
仕様が変わると1日前の記事でも古い記事になってしまいますからね…。
日々精進の大変な世界です( ;∀;)
同じ事象で解決策を調べていたところ、たどりつきました。
無事解決しました。ありがとうございます!
お役に立てて良かったです!
こちらの記事で止まるようになりました・・・!
ありがとうございました。