LoginSignup
3
4

More than 3 years have passed since last update.

Docker環境にて、PHPのデバッグができるかどうか試しにやってみた

Last updated at Posted at 2020-02-06

はじめに

・今の職場にてPHPの開発をしているだが、デバッグができなくて困っている。苦肉の策でログを出しながら確認しているが、なんとかしたいと思い。
最近かじったDocker環境にてPHPのデバッグができる様なので、試しにやってみた。

使用ツール

項目 バージョン
PC Razer Brade Pro 2019
OS Ubuntu 18.04 LTS
Docker 19.03.5
Docker-Compose 1.17.1
PHP php:7.2.7-apache (連携されているコンテナ)
Xdebug 2.7.0
Visual Studio Code 1.41.1
Dockerfile
FROM php:7.2.7-apache

RUN apt-get update && \
    docker-php-ext-install mysqli && \
    pecl install xdebug
docker-compose.yml
version: '3'

services:
  php:
    build: ./php
    ports:
      - '80:80'
    volumes:
      - ./php/html:/var/www/html
      - ./php/conf/php.ini:/usr/local/etc/php/php.ini
      - ./php/log/xdebug:/var/log/xdebug
php.ini
[Date]
date.timezone = "Asia/Tokyo"

[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

[xdebug]
; xdebugのインストール先を指定(Dockerコンテナ内)
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
; デバッグで使用するポートを指定(デフォルト値)
xdebug.remote_port=9222
; Dockerコンテナ内部から見たホストを指定
xdebug.remote_host=host.docker.internal
; ログ出力先
xdebug.remote_log=/var/log/xdebug/xdebug.log
xdebug.remote_connect_back=1
launch.json
{
  "version": "0.1.0",
  "configurations": [
    {
      "name": "Listen for XDebug",
      "type": "php",
      "request": "launch",
      "port": 9222,
      "pathMappings": {
        // Dockerコンテナのdocument root : 開発環境のdocument root
        "/var/www/html":"${workspaceFolder}/php/html" 
      }
    }
  ]
}
index.php
<?php

echo 'Hello World<br>';

はまった点

・Dockerの立ち上げから、HTTPへのアクセスまではすんなりいったが、ブレイクポイントで止まらなかった。結果、launch.jsonのポートの設定を自分の環境で使用しているものに変更したら動きました。
・xdebugのインストール先を指定(Dockerコンテナ内)をphp.iniファイルに記入するのが抜けていたため動かなかった。※環境によってパスが変わるようであり、Dockerを立ち上げたときにコマンド上でインストールされたパスが確認できる。

参考にさせて頂いた記事

・Docker-composeのコマンド
https://qiita.com/okyk/items/a374ddb3f853d1688820
・構築方法
https://qiita.com/MasanoriIwakura/items/a310c75e6c5b347adf37

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4