替代在php.ini中存储PHP配置值

时间:2013-07-03 21:56:35

标签: php

我们有一个网络应用程序,我们修改了一些默认的php.ini值; short_open_tag = Offexpose_php = Offmemory_limit = 128M等等。当我们需要扩展并将其他应用服务器联机时,我们当前的部署策略涉及将我们的应用程序克隆到具有以下功能的“新”服务器上最新版本的php.ini,以及特定于发行版(在我们的例子中是Debian)的php.ini文件。

我们目前正在将我们的自定义php.ini文件存储在我们的仓库中并在我们克隆时进行部署,但是当一个新的克隆应用服务器启动了PHP 5.4+时,最近遇到了与弃用的配置值有关的问题。这导致我们的配置文件损坏了,让我思考如何最好地处理这个问题。我们想使用默认的最新的 php.ini,其中包含可能的新指令,并且会删除已弃用的指令,然后能够“本地”覆盖我们需要的设置。

我们考虑过的解决方案包括使用.htaccess文件和ini_set(),但这里有三个缺点,即some settings can only be adjusted in php.ini,我们的cli脚本不会使用.htaccess这一事实,对于通过Apache访问该站点的每个用户,我们必须处理.htaccess或调用ini_set(),从而导致不必要的开销。我们还考虑冻结我们使用的PHP版本,以便在部署后没有对php.ini进行更新和更改,但我不确定这种策略是否最有效,因为我们会错过可能的小更新与安全等有关的

我们是否错过了与可移植部署PHP引擎设置相关的选项?

1 个答案:

答案 0 :(得分:0)

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

仅供参考,在我们的Debian环境中,我们遵循策略outlined here来安装除最新版本之外的特定版本的PHP。