環境
OS:windows7
XAMPP:3.2.2
PHP:7.1.6
Xdebug:PHP 7.1 VC14 TS (32 bit)
VSCode:1.13.1
XAMPP:3.2.2
PHP:7.1.6
Xdebug:PHP 7.1 VC14 TS (32 bit)
VSCode:1.13.1
XAMPPのインストール
入手元
https://www.apachefriends.org/jp/index.html
インストール方法
特に初期値等は変更せずにインストール動作確認
http://localhost/にアクセスできることを確認Visual Studio Codeのインストール
入手元
https://code.visualstudio.com/downloadインストール方法
特に初期値は変更せずにインストールPHP用の環境準備
拡張機能 → PHP IntelliSense※この説明でのXAMPPではPHPが7以上なので別途PHP7の環境の準備は不要
■ php.executablePathの設定
1 |
"php.executablePath": "C:\\xampp\\php\\php.exe""C:\\xampp\\php\\php.exe" |
■php.validate.executablePathの設定
1 |
"php.validate.executablePath": "C:\\xampp\\php\\php.exe"<br /> |
Xdebug環境の構築
Xdebugのインストール
PHP7以降はXdebugがインストールされていないのでインストールする。(ダウンロード後リネームして配置するだけ)■Xdebugの入手元
https://xdebug.org/download.php
「Xdebug 2.5.5」の「PHP 7.1 VC14 TS (32 bit)」をダウンロード
ダウンロードした「php_xdebug-2.5.5-7.1-vc14-ts.dll」を「php_xdebug.dll」 にリネームして「C:\xampp\php\ext」に配置する。
VSCodeの設定
拡張機能 → PHP DebugXAMPPの設定
php.iniの最後に以下を設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[XDebug] zend_extension = "C:\xampp\php\ext\php_xdebug.dll" xdebug.profiler_append = 0 xdebug.profiler_enable = 1 xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir = "C:\xampp\tmp" xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "127.0.0.1" xdebug.remote_port = 9000 xdebug.auto_trace = 1 xdebug.trace_output_dir = "C:\xampp\trace" xdebug.idekey = "phpstorm" |
Xdebugの動作確認
デバッグ対象のphpファイルをドキュメントルートに配置する。(C:\xampp\htdocs)↓
デバッグしたいファイルのディレクトリをVSCodeで読み込む。(ファイルでは無くディレクトリで読み込む)
↓
デバッグの設定を以下のようにする。(デフォルト値)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
.vscode\launch.json { "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000 }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9000 } ] } |
ブレイクポイントを設定してデバッグを開始する。
↓
ブラウザから対象のphpにアクセスするとブレイクポイントで処理が止まるのでそこからデバッグを行う事が出来る。