偏执的Sysadmin -vs-过时的PHP版本


8

偏执的系统管理员如何自信地与最新的稳定PHP版本保持同步?(安全修复程序已经定期发布)。

这是生产服务器,因此“中断的东西”吓死我了。维护停机时间不是问题。

具体来说,我们正在运行最新的Suse Enterprise Linux,但是完全或更通用的答案是完全可以接受的。

您如何处理生产机器的安全更新?我们有什么不知道这个家伙这么害怕使用包管理器来“更新”的呢?

有什么建议吗?


2
对任何补丁PHP,gtk +包装器,Windows驱动程序更新等抱有偏执是一件好事,恕我直言-这不仅仅是PHP,它是一种常规的补丁哲学,请参阅serverfault.com/questions/104665/…,以获取有关常规补丁的良好讨论。
Zypher

@Zypher感谢您的链接。这里的情况并不理想,但我们正在朝着这一目标努力。明确的证据表明事情需要赶紧到达那里。=)
匿名

Answers:


6

我以与处理其他所有问题相同的方式处理PHP:首先升级开发环境(生产的VMWare克隆),对它进行回归测试,然后使用与VMWare主机相同的部署模板将其升级到生产环境。(如果您使用软件包管理器进行升级,则将使用相同的软件包)。

作为额外的隔离层,我们的生产环境由成对的冗余主机组成,并且从生产循环中取出一个主机进行升级,然后进行全面测试,然后再切换到该主机以升级其合作伙伴。

通常,安全更新应在实际中尽快应用,非安全/非关键错误修正更新每季度应用一次以最大程度地减少停机时间。


拥有冗余非常棒。我们正在将很多东西转移到虚拟中,这将使事情变得容易得多。只是确保我的假设不是疯狂的。=)感谢您的回答。
匿名

虚拟机是一项奇妙的发明-从理论上讲,冗余生产系统都可以是虚拟机,如果您要自己付费,则可以节省大量成本:)其他优点包括能够在虚拟机进行近距离升级之前对虚拟机进行快照-即时回滚。
voretaq7,2010年

4

PHP是我最需要保持更新到最新版本的东西。我不相信大多数东西。

最终,最好的选择是查看从当前版本到最新版本的每个变更日志,并切实权衡风险。

如果您要升级从5.3.1到5.3.2的次要版本,我不会太担心。

如果您是从5.2.x升级到5.3.x,则可能会引入一些兼容性问题。

如果您使用系统软件包,通常发行版将不会引入会破坏现有性能的升级。RHEL和CentOS会修补旧版本以进行修复,直到主要发行版本发布为止。通常,为您进行测试可以降低风险。我希望SuSE 企业也是如此。

对于升级途径,最好的选择是在升级生产之前,构建测试服务器并针对最新版本测试应用程序。


我确实认为,只要您的包装盒之间没有被严重破坏,包装管理系统就使用经过审核的,通常无损的包装。很高兴得到您的肯定。谢谢。
匿名co

程序包管理可能会遇到很多麻烦或失败-它通常可以正常工作,但是即使上游供应商表示未引入任何破坏兼容性的更改,我的包中补丁程序级别的颠簸也扑朔迷离。根据我的经验,绝对是部署前的测试情况。
voretaq7 2010年

您是仅使用系统软件包,还是也有自己编译的软件?
华纳2010年

1

另一个不太受欢迎的答案是建立允许的URL和功能的白名单。在Apache中,您可以通过结合使用代理和重写功能来做到这一点。

基本上,您进行两次安装,其中一次安装具有简化的配置:代理,重写和不执行代码;等等。任何“允许的” URL(带有参数等)都将被代理到第二次安装。

然后,将您自己添加到PHP的开发人员列表中,并仔细监视发行说明。每当您看到可能是安全漏洞的东西时,便会在首次安装中构建垫片以检测此类失败,并向用户发送错误。

在这样的设置中,您需要将POST重定向到一个过滤器(如果您根本需要POST;某些站点只允许通过某些IP地址进行POST就可以了!)可以查找允许的来源,并预先验证一切。

设置这样的白名单非常耗时,但是对于需要运行比PHP稳定寿命(似乎只有几年)更长的任务的关键应用程序,这可能是利用大量PHP的绝佳方法应用程序,而不会遇到漏洞。


1

除上述内容外,您还可以启用软件包回滚以防万一。

然后,如果您确实确信在开发上工作正常,但确实在生产上出现了问题,则可以至少在解决问题之前迅速撤消更改。

有关Yum中的示例,请参见回滚YUM软件包。我确信其他包裹管理系统也有类似的情况。

我知道这是腰带和牙套,我同意Warner的观点。较小的更改不应破坏任何内容。就个人而言,我在PHP升级方面没有任何问题,但是安全总比后悔好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.