PHP, Docker, PHPStormでXDebug3を使えるようにする

カテゴリ: 未分類

PHPStormのDockerコンテナを使用した開発でXDebug3を使えるようにするための設定手順です。

Dockerfile

php:7.4-apacheのイメージを利用したDockerfileを作成する。

docker-php-ext-enable xdebugを実行することで、xdebugが有効化されてコンテナ内にiniファイルが作成される。

FROM php:7.4-apache

RUN pecl install xdebug && \
    docker-php-ext-enable xdebug

WORKDIR /var/www

php.ini

XDebugの設定を含めたphp.iniの設定ファイルを設置する。XDebugはversion2と3で設定内容が異なることに注意。(XDebug2の時に使われる設定をコメントアウトした形で記載しておきます)

[Date]
date.timezone = "Asia/Tokyo"

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

[xdebug]
# for XDebug2
#xdebug.remote_enable=1
#xdebug.remote_autostart=1
#xdebug.remote_host=host.docker.internal
#xdebug.remote_port=9000
#xdebug.remote_log=/tmp/xdebug.log

# for XDebug3
xdebug.client_host = host.docker.internal
xdebug.client_port = 9003
xdebug.idekey = PHPSTORM
xdebug.mode = debug

確認

コンテナに入って、dockerの中で確認する。

docker-compose exec app bash

バージョンの確認

php --version

PHP 7.4.13 (cli) (built: Dec 11 2020 08:24:16) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans

設定ファイルの場所を確認

php -m | grep Xdebug
Xdebug

php -i | fgrep xdebug.ini
/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini,

php -i | fgrep 'Loaded Configuration File'
Loaded Configuration File => /usr/local/etc/php/php.ini

PHPStormで設定

  • Preferenceを開く cmd+,

以下、Preferenceでの設定

  • メニューから選択 PHP > Debug

    • ポートがiniファイルの値と同じになっていることを確認 (デフォルトで9000,9003が指定されているはず)
  • メニューから選択 Build,Execution,Deployment > Docker

    • "+"をクリック
    • Docker for Macにチェックを入れる
    • Path mappingsがあっていることを確認する
    • Applyする
  • メニューから選択 PHP > Server

    • Dockerの定義があることを確認 (...???)
  • メニューから選択 PHP

    • CLIインタープリタの横の"..."をクリック
    • "+"をクリック
    • From Docker
      • Docker Composeを選択 (Dockerではない)
      • ServerをDockerのサーバを選択する
      • serviceをphpが動作しているコンテナ名にする
      • PHPとDebuggerのバージョンが合っていることを確認
  • メニューから選択 PHP > Test Frameworks

    • "+"をクリックして、"PHPUnit By Remote Interpreter”を選択
    • Interpreterを設定したものに指定する
    • PHPUnitのバージョンが表示されることを確認
  • メニューから選択 Run -> Edit Configurations

    • "+"をクリックして、"PHP Remote Debug”を選択

参考資料


Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

One thought on “PHP, Docker, PHPStormでXDebug3を使えるようにする

  1. Dockerfileの定義ではなく、作成済みコンテナで下記のコマンドを実行した場合はうまくいかなかった
    --
    pecl install xdebug && docker-php-ext-enable xdebug

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です