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でステップ実行 ①ステップ実行するための設定