更新
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