よく忘れるので備忘録として。
.ini ファイルの場所を調べる
shell
php -i |grep php.ini # または --info
# => Configuration File (php.ini) Path => /usr/local/etc/php このディレクトリから php.ini ファイルを探して
# Loaded Configuration File => /usr/local/etc/php/php.ini このファルが php.ini として読み込まれている
.ini ファイルとして読み込まれているファイルを調べる
shell
php -r 'echo php_ini_scanned_files();'
# => /usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini,
# /usr/local/etc/php/conf.d/docker-php-ext-intl.ini,
# /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini,
# /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
# /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini,
# /usr/local/etc/php/conf.d/docker-php-ext-zip.ini,
# /usr/local/etc/php/conf.d/xdebug.ini
.ini ファイルのスキャンディレクトリを調べる
shell
php -r 'phpinfo();' | grep Scan
# => Scan this dir for additional .ini files => /usr/local/etc/php/conf.d
# /usr/local/etc/php/conf.d/*.ini ファイルが設定ファイルとして読み込まれる
# xdebugの設定などは、別ファイルに定義した方が良さそう。
補足
Dockerイメージ php: 8.0-fpm-buster
などを使用している時は、
/usr/local/etc/php
配下に php.ini
ファイルがある。
また、同ディレクトリ内に conf.d
ディレクトリがあり、 その中の .ini
ファイルがスキャンされている。
さらに補足
上記のDockerイメージを使用している時に、 /usr/local/etc
配下に php-fpm.conf
ファイルがある。
また、同ディレクトリ内に php-fpm.d
ディレクトリがあり、その中の .conf
がスキャンされていそう。(詳しく調べていないので推測)
こちらは、php-fpm の設定ファイル。
概念的には下記がわかりやすい気がします。