1
0

More than 1 year has passed since last update.

環境別Xdebugの設定メモ

Posted at

3つの環境別の設定について書いていきます。

手順

※便宜上ローカル環境を「ローカル」、コンテナ内を「リモート」と表現しています。

①. MAMP(XAMPP):ローカルでデバッグ

MAMP(XAMPP)に基本Xdebugも付属しています。していない場合は別途インストールする必要があります。
ローカルのVSCode(PHPStorm)とローカルのXdebugでデバッグを行う方法です。

1. MAMP(XAMPP)のXdebug設定

php.iniに以下のコードを追加

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をインストールしておく

Dockerfile
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
xdebug.idekey=phpstorm

※xdebug.idekey項目はvscodeには不要

3. VSCodeの設定

リモートのVSCodeに拡張機能「PHP Debug」をインストールし、launch.jsonを作成して、以下のようにpathMappings項目を追加することでデバッグを始められます。

launch.json
"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をインストールすること

Dockerfile
RUN pecl install xdebug \
    && docker-php-ext-enable xdebug

※phpのバージョンが5.6など低いの場合、対応しているバージョンのxebugをインストールする

2. php.iniの設定

リモートの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
が設定されるのでどちらかに合わせること

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0