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成功了。

相關內容