我正在将几台服务器从PHP 5.1.6升级到PHP 5.3.x,但是,我们托pipe了一些旧的网站,这些网站在修复应用程序代码时会很费时间。
正如我所看到的,有两个解决scheme:
后面两个选项是不可取的,因为这将是非常耗时的 – 记住,没有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更全面的参考。