![在 Linux 上更新 PHP-“没有标记为更新的软件包”?](https://linux22.com/image/514432/%E5%9C%A8%20Linux%20%E4%B8%8A%E6%9B%B4%E6%96%B0%20PHP-%E2%80%9C%E6%B2%A1%E6%9C%89%E6%A0%87%E8%AE%B0%E4%B8%BA%E6%9B%B4%E6%96%B0%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E2%80%9D%EF%BC%9F.png)
笔记:我有一个应用程序需要 5.2,但我的服务器目前运行的是 5.1.6。
我对服务器管理还很陌生,但我认为将 PHP 更新到 5.2+ 的任务应该相对简单。我在网上发现,据称以下内容足以完成此操作:
yum update php
但是当我运行这个时,输出如下:
[root@ip-XXX-XXX-XXX-XXX /]# php -v PHP 5.1.6 (cli)(构建于:2010 年 1 月 13 日 17:13:05) 版权所有 (c) 1997-2006 PHP 集团 Zend Engine v2.1.0,版权所有 (c) 1998-2006 Zend Technologies [root@ip-XXX-XXX-XXX-XXX /]# yum 更新 php 已加载插件:fastestmirror 确定最快的镜像 * 附加组件:p3plmirror02.prod.phx3.secureserver.net * 基础:p3plmirror02.prod.phx3.secureserver.net * 附加功能:p3plmirror02.prod.phx3.secureserver.net * turbopanel 基础:p3plmirror02.prod.phx3.secureserver.net * turbopanel-centos5:p3plmirror02.prod.phx3.secureserver.net * 更新:p3plmirror02.prod.phx3.secureserver.net 附加组件 | 951 B 00:00 附加组件/主要 | 201 B 00:00 基础 | 2.1 kB 00:00 基础/primary_db | 1.6 MB 00:00 附加内容 | 1.1 kB 00:00 额外内容/主要内容 | 107 kB 00:00 附加功能 325/325 涡轮面板底座 | 951 B 00:00 turbopanel-base/primary | 72 kB 00:00 涡轮面板基座 494/494 turbopanel-centos5 | 951 B 00:00 turbopanel-centos5/primary | 2.1 kB 00:00 turbopanel-centos5 8/8 更新 | 1.9 kB 00:00 更新/primary_db | 463 kB 00:00 设置更新流程 没有标记为更新的软件包 [root@ip-XXX-XXX-XXX-XXX /]# php -v PHP 5.1.6 (cli)(构建于:2010 年 1 月 13 日 17:13:05) 版权所有 (c) 1997-2006 PHP 集团 Zend Engine v2.1.0,版权所有 (c) 1998-2006 Zend Technolog [root@ip-XXX-XXX-XXX-XXX /]# 没有标记为更新的软件包 [root@ip-XXX-XXX-XXX-XXX /]# php -v bash:否:未找到命令 [root@ip-XXX-XXX-XXX-XXX /]# [root@ip-XXX-XXX-XXX-XXX /]# php -v bash:[root@ip-XXX-XXX-XXX-XXX:未找到命令 [root@ip-XXX-XXX-XXX-XXX /]# PHP 5.1.6 (cli) (构建于:2010 年 1 月 13 日 17:13:05) bash:意外标记‘(’附近有语法错误 [root@ip-XXX-XXX-XXX-XXX /]# 版权所有 (c) 1997-2006 PHP 集团 bash:意外标记‘c’附近有语法错误 [root@ip-XXX-XXX-XXX-XXX /]# Zend Engine v2.1.0,版权所有 (c) 1998-2006 Zend Technologies bash:意外标记‘(’附近有语法错误 [root@ip-XXX-XXX-XXX-XXX /]#
在运行命令之前和之后,我的 PHP 版本都是 5.1.6。我对这个更新过程是否太天真了?我是否有必要采取更详细的路线?
答案1
您正在尝试升级发行版提供的软件包。通常,发行版不会更改版本,而是向后移植安全修复程序,这样做是为了维护更稳定的环境。由于重大修订更改会影响软件的运行,因此它们通常只会在发行版的主要修订之间进行。
如果您想运行最新的 PHP,您可能必须创建自己的包、找到第三方包或从源代码进行编译以制定您自己的构建标准。
根据提供的输出,可以合理地假设您正在运行当前发行版可用的最新版本的 PHP。
CentOS wiki 上似乎有一个演练使用开发仓库更新至 5.2。
答案2
不,你没有做错什么,只是 5.1.6 是最新的软件包 - 至少在 CentOS 存储库中是这样的。你可以执行yum info php
以获取更详细的信息,包括存储库中的版本号。