更新
2020/05/17 launch.json に pathMappings の例を追記
今日も明日も明後日も VSCode でしょう😎
ゴール
以下の場合でステップ実行できること
- デバッグ対象がローカルにある場合 (VMなし)
- ローカルに
PHP, Web サーバ, ソースコード, Vscode
- ローカルに
- デバッグ対象がVM上にある場合
- ゲストOSに
PHP, Web サーバ, ソースコード - ホストOSに
VScode
- ゲストOSに
書かないこと
- PHPと Web サーバのインストール手順
手順
0. (デバッグ対象がVM上にある場合のみ) ゲストOSのソースコードをホストから見れるようにする
C:/app/src/wwwroot を共有フォルダに設定
-
拡張
PHP Debugをインストール -
デバッグ構成ファイルを作る
/.vscode/launch.json{ "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug PHP", "type": "php", "request": "launch", "port": 9000, // 以下、デバッグ対象がVM上にある場合のみ書く "pathMappings": { // ゲストOSのソースの場所 : VSCode のあるホストOSから見えるゲストOS上のソースの場所 // e.g. いずれかひとつでOK // "C:/app/src/wwwroot" : "//guest-hostname/wwwroot" // "C:/app/src/wwwroot" : "//192.168.100.101/wwwroot" // "C:/app/src/wwwroot" : "${workspaceRoot}" } } ] } -
Xdebugをインストール
ⅰ.
php -iの結果 (全部) を https://xdebug.org/wizard に張り付ける
ⅱ. DLLをダウンロード
ⅲ.
php.iniと同じ階層にextフォルダを作りそこにダウンロードしたDLLを置く ※php.iniの場所は上述のコマンドで出力されているⅳ. Xdebug を設定
/php.ini; ローカルのみで環境をつくってる場合 zend_extension = php_xdebug-2.9.5-7.4-vc15-x86_64.dll xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_host=localhost ; - - - ; デバッグ対象がVM上にある場合 zend_extension = php_xdebug-2.9.5-7.4-vc15-x86_64.dll xdebug.remote_enable = 1 xdebug.remote_autostart = 1 ; ゲストOSから見たホストOSのIP xdebug.remote_host=192.168.100.101ⅴ. Web サーバを再起動
ステップ実行
「ブレークモード」になることを確認できればOK。
余談ですがブレークモードで ctrl + alt + w して w だけ離して a で選択してる式をウォッチ式に追加できますね。この辺り Visual Studio のショートカット体系に寄せてくれていて、ありがたいです😊
参考
Documentation - all settings: https://xdebug.org/docs/all_settings

