Featured image of post Docker環境でphp8 + xdebug3を設定する

Docker環境でphp8 + xdebug3を設定する

Twitter ツイート Hatena Bookmark ブックマーク

Docker composeでそれっぽい環境を用意して、xdebug動かしてみたよって話です。

docker-composeの定義

こんな感じです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: "3"

volumes:
  db-store:

services:
  db:
    image: postgres:11
    volumes:
      - db-store:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: root
      POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
      TZ: "Asia/Tokyo"
    ports:
      - 5432:5432
  php:
    build:
      context: ./docker/php/
      dockerfile: Dockerfile
    volumes:
      - ./:/app:cached
    depends_on:
      - db
  web:
    image: nginx:alpine
    ports:
      - 80:80
    depends_on:
      - php
    volumes:
      - ./:/app:cached
      - ./var/log/nginx:/var/log/nginx/
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
      - /app/.git
      - /app/.data
      - /app/docker

php用のdocker fileの設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
FROM php:8.0-fpm

RUN apt-get update \
  && apt-get install -y zlib1g-dev mariadb-client libzip-dev libpq-dev \
  && docker-php-ext-install zip pdo_pgsql \
  && pecl install xdebug \
  && docker-php-ext-enable xdebug

COPY php.ini /usr/local/etc/php/

COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /app

xdebug3用にphp.iniを書く

こんな感じで、xdebug3だと結構2とは設定が変わってます。

1
2
3
4
5
6
[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal
xdebug.log=/tmp/xdebug.log
xdebug.client_port=9200

PHPStormの設定

Setting -> PHP -> DebugのDebug Portに9200を設定する

Setting -> PHP -> Serversでlocalhost, 80, でProject FilesのAbsolute path on the serverパスに /app を設定する

参考

PhpStormとXdebugでステップ実行 ①ステップ実行するための設定

comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。