php.d/*.ini 不会在 PHP 5.5 中覆盖 php.ini

php.d/*.ini 不会在 PHP 5.5 中覆盖 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 优先考虑 app.ini 的值,而不是 php.ini 的值;但是,自从我切换到 PHP 5.5 后,它们不再优先:

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

app.ini文件看起来已被 PHP 成功解析:

# 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 论坛上的一个主题,询问 AWS 是否考虑迁回php.ini原来的位置。

与此同时,解决办法很简单重命名该文件以使其出现在 php.ini 之后,就我而言,重命名为zapp.ini就行了。

相关内容