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

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=0Dockerの設定
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デバッグ
以下の赤枠部分をクリックして、デバッグを開始します。

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