エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【xdebug】Dockerのphp-fpmとnginxでxdebug対応【621日目】

Dockerの開発環境でもxdebug動かしたい!

Dockerでphp-fpmとnginxで環境作っててもxdebugを使いたい!

インストールとか、環境構築は省略。

xdebugが入っているのを前提に進めます。

php.iniかconf.d内に設定

Dockerfileにxdebugの設定をオンにするコマンドを打たせる手もありますが、
どうせ設定ファイル作ることになるので、コマンドなしで設定ファイル作りましょう。

■変更するファイル

/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

■書くこと

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-0000000000/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
xdebug.remote_autostart=true

zend_extensionの no-debug-non-zts-0000000000って書かれた部分は、実際にご自身のphp-fpm環境で入っていたパスを指定してください。

lsコマンド等を駆使したら、どこにxdebug.soがあるかわかると思います。

設定の反映

この状態で、 php-fpmコンテナを再起動しましょう。

docker restart xxxx

xxxxは、自身が作ったphp-fpmコンテナの名前です。

確認方法

テキトーなファイルで、 phpinfo();を実行してみましょう。

xdebugに関する設定がずらあああああって並んでたらオッケーです。

var_dump();とかすると、いつもと違った表示になると思います。そしたら間違いなく動いています。

設定の意味

上で書いた設定の意味ってなんでしょう。

理解して書かないと良くないとおもうので、こちらの記事にまとめましたφ(・

www.nyamucoro.com