dockerのPHPでxdebugを使ってみる


概要

xdebugをdocker環境で使えるようにしたかったので調べてみた。

Dockerを準備する

作ったコードは、下記githubにまとめているので大雑把に書きます。
※ Github: https://github.com/reflet/php5.6-xdebug

docker/httpd/Dockerfile
FROM php:5.6-apache

# install xdebug
RUN pecl install xdebug-2.5.5 && docker-php-ext-enable xdebug

# update php.ini
COPY ./php.ini /usr/local/etc/php/php.ini

WORKDIR /var/www/html

php.iniの設定

下記の設定を追加する。

docker/httpd/php.ini
[xdebug]
xdebug.idekey="PHPStorm"
xdebug.remote_host = "docker.for.mac.host.internal"
xdebug.default_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 0
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_port = 9000

docker-compose.yml

dockerの構成を記述します。

docker-compose.yml
version: "3.7"
services:
   httpd:
     container_name: httpd
     image: httpd:development
     build:
       context: ./docker/httpd
       dockerfile: Dockerfile
     ports:
       - "80:80"
     volumes:
       - ./src:/var/www

サーバ起動

下記コマンドでサーバを起動します。

ターミナル
$ docker-compose build
$ docker-compose up -d

IDE設定 (IntelliJ)

お使いのIDEで9000番ポートを指定する。

  • Preferences > Languages & Frameworks > PHP > Debug

  • Preferences > Languages & Frameworks > PHP > Servers

  • edit-configurationsボタン

  • configurations設定

  • 実行してみる

以上

参考サイト