PHP7.2 VScode Dockerデバッグ環境

戻る
公開日:2023/4/16
PHP7.2 VScode Dockerデバッグ環境

DockerのPHP環境のデバッグを行う設定です。
PHPのバージョンが7.2で最新バージョンではなかったので、ちょいちょい手間とりました。なのでメモです。
バージョンは以下の通り。

PHP

7.2

Docker

20.10.24

Docker Compose

2.17.2

Visual Studio Code

1.77.1

OS

MacBook M1チップ

Visual Studio Code(以降、VSCode)の設定

拡張機能を追加します。VSCodeの赤枠部分をクリック。

検索窓に「php debug」と入力して、インストール。

インストール後、以下の赤枠のアイコンをクリックすると、.vscode/launch.jsonファイルが作成される。

内容を以下に変更する。
pathMappingsの部分は左がDockerのphpのソースを置いているpath。右側がローカルPCのソースを置いているpath。${workspaceFolder}はVSCodeで開いているソースのパス。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9000,
            "pathMappings": {
                "var/www/html/":"${workspaceFolder}/"
            }
        }
    ]
}

PHPの設定

php.iniは以下を追記。「xdebug.remote_port」の番号(9000)を上記のlaunch.jsonのportと同じにする。

[xdebug]
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_connect_back=0

Dockerの設定

PHPのdockerfileに以下を追記

# debug
RUN pecl install xdebug-2.9.8 \
    && docker-php-ext-enable xdebug

バージョンを指定しないと、PHPのバージョンエラーが表示される。

pecl/xdebug requires PHP (version >= 8.0.0, version <= 8.2.99), installed version is 7.2.34
No valid packages found
install failed

あとはdocker-composeを作り直せばOK。

ちなみに、docker-compose.ymlの中身。

version: '3'

services:
  web:
    build:
      context: ./php7.2
      dockerfile: dockerfile
    volumes:
      - ./php7.2/php.ini:/usr/local/etc/php/php.ini
      - ./src:/var/www/html
      - ./apache/sites-available:/etc/apache2/sites-available
    ports:
      - 8000:80
    links:
      - mysql:mysql

デバッグ

以下の赤枠部分をクリックして、デバッグを開始します。

あとは止めたいところでブレークポイントを入れてデバッグをします。

参考サイト

https://ichi-station.com/php-xdebug-vscode-docker/

戻る