如何在没有任何停机的情况下升级PHP版本?

是否有可能升级我的服务器上运行的PHP版本没有任何显着的停机时间?

我想要避免的是我的网站正在closures的时间(或更长的时间,如果出现错误),而我升级PHP。 如果他们倒了几秒钟,我不介意。

理想情况下,我想在服务器上安装两个版本的PHP,只需轻触一个开关即可在它们之间翻转。 那样的话,如果新版本有不可预见的问题,我可以再次拨动开关回到旧版本。

我能想到的唯一方法是让两台服务器运行不同版本的PHP,并使用DNS来select哪一个用户可以看到。 一台服务器可以吗?

编辑

我应该提到我使用运行Nginx和PHP-FPM / FastCGI的Ubuntu 10.04服务器。

将每个版本的PHP安装到不同的目录,使用符号链接在它们之间切换 – 在Unix中,符号链接是primefaces的,意味着没有停机时间。 然后只需重新启动您的networking服务器重新启动工作线程,从而使用新的PHP版本。

所以:

/opt/php/5.1 /opt/php/5.2 /opt/php/live -> /opt/php/5.2 

这不是零停机时间,而是停机时间 – 根据您的要求。

就像Adam Gibbins和Zoredache所说的那样完全取决于你的设置。 如果你使用gentoo-linux作为你的服务器,你可以在不同的插槽中安装每个PHP版本,然后使用eselect在它们之间切换。 您仍然需要重新启动networking服务器,但是这只是几秒钟。 当然,无论你使用什么方法,你都需要一个testing脚本来确保一切正常工作。