0

我们有一个网络应用程序,我们修改了一些默认的 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 引擎设置相关的选项?

4

1 回答 1

0

根据上面@PeeHaa 提供的指导,我们决定将我们的应用程序锁定到特定的 PHP 版本(通过Composer),为 Apache2 和 CLI 采用该 PHP 版本的默认 php.ini 文件,并添加到我们的设置中。然后将其推送到我们的存储库,并根据需要在部署和对文件的任何 git 更改时复制。

仅供参考,在我们的 Debian 环境中,我们遵循此处概述的策略来安装特定版本的 PHP,而不是最新版本。

于 2013-07-04T21:22:47.407 回答