Masayan tech blog.

  1. ブログ記事一覧>
  2. 【VsCode】Docker環境でPHP Debugを導入する手順

【VsCode】Docker環境でPHP Debugを導入する手順

公開日

環境

  • windows10
  • Laravel 8.x
  • PHP 8.x
  • VsCode
  • gitbash 2.32.0.1
  • Xdebug 3

動作イメージ

ブレークポイントを置いたところで、変数の中身が確認できる(var_dumpとかddとか使わなくてもよくなるので開発効率UP)

設定手順

Laravelプロジェクトの作成

laravelプロジェクトの作成までの手順は割愛します。

php.ini

  • launch.json(後述)のport番号を合わせる
  • xdebugのバージョンにより記載方法が変わるため、詳細はこちらを参照(以下はversion3の書き方)
    PHP8になってから、Xdebugも2→3にアップデートされたようです。
/// 割愛
[xdebug]
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_host = "host.docker.internal"
xdebug.client_port = 9012
xdebug.log = "/var/log/xdebug.log"

VsCodeの設定

phpdebugのインストール

VsCodeにインストールします。

https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug

launch.jsonの設定

  • portはphp.iniのportと合わせる
  • pathMappingsは コンテナ内のプロジェクトのパス: ローカルのプロジェクトのパス で指定

.vscode\launch.json

{
    "version""0.2.0",
    "configurations": [
        {
            "name""Listen for XDebug",
            "type""php",
            "request""launch",
            "port": 9012,
            "pathMappings": {
              "/var/www/my-app""${workspaceFolder}/my-app"
            }
        }
    ]
}

docker-compose.ymlの設定

  • php.iniとxdebugのログファイルをマウント

docker-compose.yml

version: "3.8"

services:
  app-dl:
    container_name: app-dl
    build: ./docker/php
    volumes:
      - ./:/var/www
      - ./docker/php/php.ini:/usr/local/etc/php/php.ini
      - ./log:/var/log
// 割愛

Dockerfileの設定

docker\php\Dockerfile

  • dockerコンテナをビルドする際にxdebugをインストールするように追記
RUN apt update \
    # xdebugのインストール
    && pecl install xdebug \
    && docker-php-ext-enable xdebug

動作確認

どこでもよいので、デバッグしたい箇所にブレークポイントを置き(赤い丸がつく)、緑の開始ボタンをクリックするとデバッグ開始する

あとは、ブラウザでブレークポイントを設定した箇所の処理が走る画面にアクセスする(今回はindex.phpなので、Laravelトップページで動作確認可能)

以上になります。

まとめ

いかがでしたでしょうか。本記事では、【VsCode】docker環境でPHP Debugを導入する手順について紹介しています。これらを導入することにより、var_dumpとかddなどのデバッグ関数を使うことなく、変数の中身が確認できるようになりますので、ぜひ参考にしてみてください。