3つの環境別の設定について書いていきます。
手順
※便宜上ローカル環境を「ローカル」、コンテナ内を「リモート」と表現しています。
①. MAMP(XAMPP):ローカルでデバッグ
MAMP(XAMPP)に基本Xdebugも付属しています。していない場合は別途インストールする必要があります。
ローカルのVSCode(PHPStorm)とローカルのXdebugでデバッグを行う方法です。
1. MAMP(XAMPP)のXdebug設定
php.iniに以下のコードを追加
[XDebug]
zend_extension = C:\pleiades\xampp7.4.23_mb\php\ext\php_xdebug.dll
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9003
※zend_extension の設定値は一例です。環境によって変わります。
2. VSCode(PHPStorm)の設定
VSCodeは拡張機能「PHP Debug」をインストールし、launch.jsonを作成するとデバッグを始められます。
PHPStormはCLIインタープリターの設定がされていることを確認できたら、デバッグを始められます。
②. VSCode(PHPStorm)+Docker:Xdebugのリモートデバッグ機能でデバッグ
②ではVSCode(PHPStorm)の本体がローカルにある環境です。
ローカルのVSCode(PHPStorm)とリモートのXdebugでデバッグを行う方法です。
1. リモートデバッグ環境を整える
コンテナ内にxdebugをインストールしておく
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
※phpのバージョンが5.6など低いの場合、対応しているバージョンのxebugをインストールする
2. php.iniの設定
[XDebug]
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9003
xdebug.remote_log=/tmp/xdebug.log
xdebug.idekey=phpstorm
※xdebug.idekey項目はvscodeには不要
3. VSCodeの設定
リモートのVSCodeに拡張機能「PHP Debug」をインストールし、launch.jsonを作成して、以下のようにpathMappings項目を追加することでデバッグを始められます。
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www": "${workspaceRoot}/dist/www"
}
},
※pathMappingsの設定値は環境によって異なる。左がリモートで右がローカル
3'. Phpstormの設定
参考
※pathMappingsを忘れないこと
③. VSCode+Docker:VSCodeのリモート開発機能を使ってデバッグ
③ではVSCodeの本体(VSCodeサーバー)がコンテナ内にあり、ローカルはあくまでVSCodeクライアントを実行しているだけです。
リモートのVSCodeとリモートのXdebugでデバッグを行う方法です。
1. リモート開発環境を整える
まず以下を参考にリモート開発環境を整える
https://root-sea.qiita.com/shoki-kamada/items/feccefffb39abd81b797
※以下のコードをDockerfileに追加してリモートにXdebugをインストールすること
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
※phpのバージョンが5.6など低いの場合、対応しているバージョンのxebugをインストールする
2. php.iniの設定
リモートのphp.iniに以下のコードを追加
[XDebug]
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9003
xdebug.remote_log=/tmp/xdebug.log
3. VSCodeの設定
リモートのVSCodeに拡張機能「PHP Debug」をインストールし、launch.jsonを作成するとデバッグを始められます。
注意点
デフォルトのポート番号について
vscodeは9003
phpstormは9000,9003
xdebugは9000
が設定されるのでどちらかに合わせること