如何在 centOS 上更新 php?

如何在 centOS 上更新 php?

我在 centOS 服务器上安装了 php 5.1.6,并且我至少需要 5.3.2(但更愿意安装最新的可用 5.* 版本)。

如果我跑

yum update php

它说它将更新到 5.1.6-34.el5_8(我的是 5.1.6-27.el5_5.3)..... 这是什么鬼???

centOS 的可用软件包是否比当前版本落后那么多,还是因为 yum 默认只会在第二个点(或其他)之后的 subversion 内更新,而我需要告诉它给我一个更新的版本?如果是这样,我该怎么做?

答案1

您很可能正在运行旧版本的 Centos(5.5 或更早版本),其存储库中没有 PHP 5.2.x 或 5.3.x。您有两个选择:将 Centos 更新到较新的版本(5.6 是第一个带有 PHP 5.3 的版本)或使用http://iuscommunity.org/关于

答案2

是的,我记得在 CentOs 5.x 上获取新版本的 php 非常痛苦。

基本上,更新存储库中有一个 php53 包;

# cat /etc/redhat-release 
CentOS release 5.8 (Final)

# repoquery -i php53

Name        : php53
Version     : 5.3.3
Release     : 7.el5_8
Repository  : updates

但是如果你运行类似这样的程序;

 # yum provides php
php-5.1.6-32.el5.x86_64 : The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor)
php-5.1.6-34.el5_8.x86_64 : The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor)

您将会看到该php53包实际上并不提供 php,这意味着安装它将破坏任何依赖于的包php,尽管系统上有一个 php。

最后我使用了一个只包含单个提供行的 shim rpm,它是我在网上某处找到的,因为我的所有 php 要求都很简单。

替代方案正如@c2h5oh提到的,使用第三方重新打包的版本,(或升级到Centos 6.2 :-<)。

您可以看到使用以下命令替换所有将导致什么php结果;php53

# rpm --whatrequires -V php
Unsatisfied dependencies for pastebin-0.60-4.el5.noarch: php

从最后一个命令的输出中您可以看到,就我而言,我没有使用任何需要php重要的包,因此我只是强制--nodeps删除了所有 php。

答案3

您可以使用在同一个事务中yum shell执行remove(of php-*) 和install(of ) 操作。php53-*

答案4

使用yum update,然后yum upgrade将 CentOS 升级到 5.8,然后重试yum update php

相关内容