我们有一个网络应用程序,我们修改了一些默认的 php.ini 值;short_open_tag = Off
, expose_php = Off
, memory_limit = 128M
, 等等。当我们需要扩展和使另一个应用服务器联机时,我们当前的部署策略包括将我们的应用程序克隆到具有最新版本 php.ini 的“新”服务器上,以及特定于发行版的(在我们的案例,Debian)php.ini 文件。
我们目前将自定义的 php.ini 文件存储在我们的 repo 中,并在克隆时部署该文件,但最近遇到了一个与已弃用的配置值相关的问题,当时新克隆的应用服务器启动了 PHP 5.4+。这导致我们的配置文件损坏,并让我思考如何最好地处理这个问题。我们想使用默认的最新php.ini,它可能包含新的指令,并且会删除不推荐使用的指令,然后能够“本地”覆盖我们需要的设置。
我们考虑过的解决方案包括使用.htaccess
文件和ini_set()
,但这里的三个缺点与以下事实有关:某些设置只能在 php.ini 中调整,.htaccess 不会被我们的 cli 脚本使用,以及每个访问该站点的用户通过 Apache,我们必须处理.htaccess
或调用ini_set()
导致不必要的开销。我们还研究了冻结我们使用的 PHP 版本,以便在部署后不会对 php.ini 进行更新和更改,但我不确定这种策略是否最有效,因为我们会错过可能会出现的小更新与安全等有关。
我们是否错过了与可移植地部署 PHP 引擎设置相关的选项?