升级到PHP 5.3 – 遗留网站的解决scheme

我正在将几台服务器从PHP 5.1.6升级到PHP 5.3.x,但是,我们托pipe了一些旧的网站,这些网站在修复应用程序代码时会很费时间。

正如我所看到的,有两个解决scheme:

  • 将旧网站粘贴在单独的兼容服务器上
  • 使最小(向后不兼容)的修复程序,并closures错误报告
  • 修复应用程序代码中所有向后不兼容和弃用的function

后面两个选项是不可取的,因为这将是非常耗时的 – 记住,没有unit testing等。 前者将是额外的费用,因为我们必须支付和pipe理一个额外的盒子。

有没有其他的select,你可能会build议尝试,或者你的经验是pipe理遗留网站的最佳解决scheme?

干杯

如果你有一定的自由度,我build议如下:

尝试有不同的networking服务器(多个apaches,apache + nginx,apache + litehttpd等),configuration为使用不同版本的PHP,并处理不同的请求到不同的网站?

http://share.ez.no/learn/ez-publish/multiple-apache-installations-howto

您将需要迟早更新代码。 请注意,安全修补程序不适用于较早版本的PHP,并且一段时间后很难pipe理多个不同的平台。 我已经尝试了你的第一个解决scheme,旧的服务器和旧的网站。 问题是系统pipe理员需要花费很多时间,特别是当你尝试一天完全切换平台的时候。

即使不进行迁移,也会有一段时间需要确保该网站在受支持的PHP环境中运行(因为PHP 5.1在某些时候将不受支持,例如可能会发现安全漏洞,不要修补)。

为了达到这个目标,你需要在新环境中testing网站。

根据我自己的经验,单靠functiontesting并不能保证代码库是无缺陷的,仅仅是因为input数据的高熵可以使程序的行为变化,尤其是在Web应用程序的情况下。

你需要做的是做广泛的functiontesting和代码覆盖率分析 。

您执行的testing越多,代码覆盖范围越多,趋于100%,确保更多的代码已经过testing,并且可以被认为是无缺陷的。

如果你不能“自然地”通过基本的functiontesting改进代码覆盖率,那么你需要看看“未被覆盖的”代码,试图通过“偏见”testing来了解如何达到它。

一个非常有用的PHP代码覆盖工具是XDebug,或者你可以看看这个问题: https : //stackoverflow.com/questions/348850/code-coverage-tools-for-php更全面的参考。