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();
とかすると、いつもと違った表示になると思います。そしたら間違いなく動いています。
設定の意味
上で書いた設定の意味ってなんでしょう。
理解して書かないと良くないとおもうので、こちらの記事にまとめましたφ(・・