有没有一种方法可以执行比安装的版本更旧的PHP?

10

我需要在一个服务器上支持一些旧版代码,同时又需要始终使用最新的稳定PHP版本。但我不可能每次升级时都更新代码库,所以我想知道是否有办法在安装的PHP版本较新时运行该特定站点的旧版本。

例如:我正在运行PHP 5.3.3,但我的某个旧站点的代码已经出现了问题。这个站点在5.2.x上一直运行得非常完美。那么,我是否可以在脚本顶部加入一个命令,使其以5.2.x的版本运行,这样我就不必在下次升级到5.4、5.5等版本时修复损坏的代码了?

简而言之:是否有这样的功能:

exec_as_php_version('5.2.14');//?


在5.2.x和5.3.x之间,真的不应该有太多的破坏性变化。 列出的内容相当简短:http://www.php.net/manual/en/migration53.incompatible.php - ceejayoz
不在列表中:任何新引入的函数将导致定义具有该名称的函数的代码硬性中止。至少当date_format()在5.2中被引入时,我的代码就是这样的情况。 - Michael Borgwardt
根据我的发现,没有一个函数/系统变量的完全弃用列表(即彻底消失)。我正在维护旧的osCommerce代码。它在各个地方使用了$HTTP_POST_VARS超级变量,自从4.1版本以来就已经被弃用了,哈哈哈!直到5.3版本才完全消失,而在5.2版本中仍然可以使用。此外,由于它是一个变量,所以不会引发弃用错误,因此甚至没有人注意到它的存在 :( - Joel Mellon
@Michael,好主意。这对我来说也是另一个问题。在date_diff()上它完全失败了,而这个函数是5.3版本才有的。 - Joel Mellon
2个回答

12

没有,欢迎来到版本相关地狱。

编辑:现在,10年后,这并不是非常困难的事情——只需在单独的Docker容器中运行不同的PHP版本即可。然而,出于安全原因,运行过时的PHP版本仍然是一个坏主意。


3

好知道。希望它永远不会变得这么糟糕。 - Joel Mellon
链接已经过时。原始文章已经不存在了。 - Pang
文章可在Web Archive上查看。 - EAmez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接