📑
【PHP】VScodeでXdebugを使ってデバッグする
環境
- PHP 8.0.2
- MySQL 8.0
- Docker 20.10.0
- Xdebug 3.0.4
下準備
下記をインストールする。
- Visual Studio Code(以下、VSCode)
- PHP Debug(VSCodeの拡張機能)
Docker
Dockerで環境構築していく。
ディレクトリ構造
├── docker
│ ├── app
│ │ ├── Dockerfile
│ │ └── php.ini
│ └── db
│ └── my.cnf
├── docker-compose.yml
└── src
└── index.php
Dockerfile
Dockerfile
FROM php:8.0.2-apache
RUN apt-get update && apt-get install -y \
git \
unzip \
vim
# xdebug インストール
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
php.ini
php.ini
[xdebug]
; リモートデバッグ有効化
xdebug.mode=debug
; リモートデバッグの自動開始
xdebug.start_with_request=yes
; ホスト指定
xdebug.client_host=host.docker.internal
; ホスト側のポート指定
xdebug.client_port=9003
php.ini
my.cnf
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
docker-compoes.yml
docker-compose.yml
version: '3'
services:
app:
build: ./docker/app
ports:
- '8080:80'
volumes:
- ./src:/var/www/html
- ./docker/app/php.ini:/usr/local/etc/php/php.ini
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: php_db
MYSQL_USER: php_user
MYSQL_PASSWORD: php_pass
TZ: 'Asia/Tokyo'
volumes:
- ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
ports:
- 3306:3306
VSCodeの設定
1. launch.jsonを作る
2. launch.jsonを編集する
編集前
囲った部分を下記に変更する
launch.json
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9003, // php.iniで設定したポート番号
"pathMappings": {
// Dockerのドキュメントルート:ローカルのドキュメントルート
"/var/www/html/": "${workspaceRoot}/src"
}
},
Discussion