LoginSignup
12
6

More than 1 year has passed since last update.

Docker × Phpstorm環境でXdebugを動作させる手順

Last updated at Posted at 2022-01-28

やっと動いてくれたので、備忘録用に記事を書きます。

環境

今回はこのような環境で検証を行いました、

windows 10
DockerDesktop 4.3.0
PhpStorm 2020.3.3
Xdebug v3.1.2
Laravel
- php7.4
- Apache/2.4.52 (Debian)

Xdebugインストール

Dockerfileに以下を記載して、Dockerコンテナを作る際にXdebugインストールします。

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

Xdebugを有効にする

php.iniに以下を追加します。

[xdebug]
xdebug.mode = develop,coverage,debug,gcstats,profile,trace
xdebug.start_with_request  = yes
xdebug.log="/tmp/xdebug.log"
xdebug.client_port=9001
xdebug.client_host=host.docker.internal
xdebug.idekey=phpstorm

Dockerコンテナを起動

上記の設定が終わったら、Dockerコンテナを起動します。

$ docker-compose up -d 

PhpStorm側の設定

ポート設定

File > Settings > Langueages&Frameworks > PHP > Debugを開き、
XdebugのDebug portをphp.iniで設定した値を入れます。(今回例だと9001)
image.png

servers設定

Nameは任意の名前を入力します。
Hostは任意の名前を入力します。
Portphp.iniで設定した値を入れます。(今回例だと9001)
DebuggerXdebugを選択します。
Use path mappingsにチェックを入れます。

Absolute path on the serverには、Docker内にソースを配置しているPathを入力します。
私の場合だとホスト側のsrcディレクトリ内をDocker側の/var/www/htmlに同期させているので、/var/www/htmlになります

image.png

Edit Configurationsの設定

PhpStormの右上にあるリストボックスから「Edit Configurations」を開きます
image.png

左上にある「+」ボタンを押して、PHP Remote Debugを選びます。
image.png

右側の設定値を入力します。

Nameは任意の名前を入力します。
Serverは上記のservers設定で作ったものを指定します。(今回の場合だとdocker-debug
IDE keyphp.iniで設定した値を入力します。(今回の場合だとphpstorm

image.png

デバッグ準備

PhpStormの右上にある虫のアイコンをクリックします。(アイコンの右下に黄色のポッチがあるとONの状態です)
image.png

ブレイクポイント設定

あとは止めたい処理のところで、行番号の横の空白をクリックして●をつけてブレイクポイントを設定します。
image.png

サイトにアクセス

処理がある部分にアクセスしてデバッガーが動いていればOK
image.png

以上となります。

12
6
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
12
6