对Webtatic其他答案的改进:
1。使用http://www.webtatic.com/packages/php54/上的指南:
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
2。您首先需要查看哪些现有已安装的软件包需要替换,可以通过使用yum shell结合在一个事务中删除php-common和php54w-common来完成(这样就不会删除共享依赖项)
yum shell
> remove php-common
> install php54w-common
> run
…
Is this ok [y/N]: n
不要对结果说“ y”,但要注意“删除依赖项”中提到的所有软件包,例如
Removing for dependencies:
php
php-cli
php-pear
php-pecl-memcache
php-mysql
如果此列表中除php *之外还有其他软件包,那么您将无法无缝切换到Webtatic PHP 5.4,但是必须研究替代方法。Webtatic为所有基本php软件包提供了替换软件包(请参阅链接至1.的页面上列出的软件包以进行确认),因此应该没有问题,除非您使用安装了依赖于特定php版本的软件包的其他第三方存储库已安装。
对于其余的安装(仍在yum shell中),只需删除以下软件包并安装它们的php54w- *副本:
> remove php-common php php-cli php-pear php-pecl-memcache php-mysql
> install php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> run
…
Is this ok [y/N]: y
然后,您应该只在列表中看到已设置为要删除并安装的软件包,并且可以确认安装要切换。当前正在加载php的任何服务都需要重新启动,例如httpd或php-fpm。
至于“无缝”,在用户能够访问网站的同时进行的任何软件更改都应充分理解其后果。在尚未加载进程的情况下删除和添加共享库时,可能会在共享库不存在时加载它们。最好像这样离线进行软件升级,最好先在非生产机器上进行测试,以验证过程是否按预期进行。
3。要切换到假设的CentOS基本php54软件包(CentOS 5使用php53前缀),您只需运行上述步骤,即可用php54w删除替换php删除,并用php54安装替换php54w的安装,例如
yum shell
> remove php54w-common
> install php54-common
> run
…
Is this ok [y/N]: n
…
> remove php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> install php54-common php54 php54-cli php54-pear php54-pecl-memcache php54-mysql
> run
Is this ok [y/N]: y
但是,关于切换到假设的基本php54的问题,某些软件包可能没有替代品(例如,CentOS 5中没有php53-pecl-memcache扩展名),而Webtatic的软件包在CentOS基础中不可用(例如php54w) -pecl-zendopcache)。如果缺少它们,那么除了直接使用pecl来安装它们之外,您通常没有其他选择。
4。任何PHP升级都可能引入错误,并且网站应该重新测试。这不是Webtatic特有的,而是新功能引入新错误的一般想法。
与接受的答案中Remi的存储库不同,Webtatic EL6存储库从不使用与CentOS基本存储库相同的软件包名称,因此不会覆盖您不打算切换到的软件包的安装/升级,因此默认情况下处于启用状态。
免责声明:我是Webtatic的所有者/维护者