我/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
就行了。