【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プロジェクトの作成までの手順はこちらの記事を参照ください。重要な設定項目は以下の通りです。

Docker・Laravel8・PHP8・Nginx・MySQLを用いて開発環境を爆速で構築する
WEBアプリをモダンかつ効率的に開発するための環境をDocker・Laravel8・PHP8・Nginx・MySQLを用いて構築する方法について解説しています。Dockerを用いることでかなりの速さで環境構築を行うことができ、ポートフォリオに組み込むことで企業の採用担当者からも好印象を持たれる可能性が高くなります。

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にインストールします。

PHP Debug - Visual Studio Marketplace
Extension for Visual Studio Code - Debug support for PHP with Xdebug

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トップページで動作確認可能)

以上になります。

コメント

タイトルとURLをコピーしました