search
LoginSignup
1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

Laravel SailでXdebugを有効化する

Laravel SailとXdebugにDockerfileのカスタマイズが必要な記事が多く出てきましたが、
2021/8/04にでた、Laravel Sail v1.9.0から公式でサポートしているので、そちらですすめていきます。

1.9.0未満の場合はアップグレードが必要です。

前提

  • Laravel Sailインストール済み
  • Sailのdocker-compose.ymlファイルがプロジェクトに存在している
  • composer.jsonの"laravel/sail"1.9.0以上

1.Laravel Sailの停止

Laravel Sailが起動していたら停止します。

sail down

2..envの編集

下記をLaravelの.envに追加します
(MacとWindows(WSL2)用)

SAIL_XDEBUG_MODE=develop,debug

※Linuxの場合はLinuxホストIP設定でIPの設定が必要です

3.docker-compose.ymlの確認

デフォルトのままだとありますが、1.9.0未満だとなかったので確認します。
Sailのdocker-compose.yml内のlaravel.testenvironmentに下記があることを確認します。

XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'

例:

laravel.test:
        build:
            context: ./vendor/laravel/sail/runtimes/7.4
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-7.4/app
        extra_hosts:
            - 'host.docker.internal:host-gateway'
        ports:
            - '${APP_PORT:-80}:80'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
            XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
            XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
        volumes:
            - '.:/var/www/html'
        networks:
            - sail
        depends_on:
            - mariadb
            - redis

※アップグレードした場合一度sail build --no-cacheで再ビルドが必要です

5.確認

起動して確認します

sail up -d
sail php --version

PHP 7.4.25 (cli) (built: Oct 22 2021 12:34:59) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies
    with Xdebug v3.1.1, Copyright (c) 2002-2021, by Derick Rethans

ブラウザでの使用法はこちら

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
What you can do with signing up
1
Help us understand the problem. What are the problem?