PHP 5.5 では php.d/*.ini が php.ini を上書きしない

PHP 5.5 では php.d/*.ini が php.ini を上書きしない

私の/etc/php.ini構成は次の通りです:

upload_max_filesize = 2M
post_max_size = 32M

以下が/etc/php.d/app.ini含まれます:

upload_max_filesize = 64M
post_max_size = 64M

PHP 5.4 では、PHP は php.ini の値よりも app.ini の値を優先していましたが、PHP 5.5 に切り替えてからは、app.ini の値が優先されなくなりました。

# php -r "echo ini_get('upload_max_filesize');"
2M

ファイルはapp.iniPHP によって正常に解析されたようです:

# php --ini
...
/etc/php-5.5.d/app.ini,
...

(/etc/php.dは へのシンボリックリンクです/etc/php-5.5.d)

php.d ini ファイルを php.ini よりも優先させるにはどうすればよいですか?

何か違いがあるなら、私は PHP 5.5 用の AWS Elastic Beanstalk コンテナを使用しています。

答え1

理由が分かりました。PHP 5.5 の Elastic Beanstalk コンテナに固有

何らかの不明な理由により、AWS チームはphp.iniの元の場所から に/etc/php.ini移転することを決定しました/etc/php.d/php.ini

のファイルphp.dはアルファベット順に処理されるため、私のファイルapp.iniは処理されました前に php.ini、したがって上書きされました。

開けましたAWSフォーラムのスレッドphp.iniAWSに元の場所に戻ることを検討するかどうか尋ねました。

その間、解決策は単純にphp.iniの後に表示されるようにファイル名を変更します。私の場合は、zapp.ini名前を に変更するとうまくいきました。

関連情報