我正在解决客户服务器上的一系列安全问题,以使其符合信用卡法律等规定。
第一项工作是将 php 从 5.2.14 升级到 5.2.16。
当我运行 yum update php 时,我得到的输出如下:
Excluding Packages from CentOS-5 - Addons
Finished
Excluding Packages from CentOS-5 - Base
Finished
Excluding Packages from CentOS-5 - Extras
Finished
Excluding Packages from CentOS-5 - Updates
Finished
Setting up Update Process
No Packages marked for Update
我对 CentOS 还不太熟悉,但使用 Debian/Ubuntu,您可以添加 PPA 以允许新的软件包。CentOS 有类似的东西吗?此输出看起来也忽略了所有主要软件包存储库。
答案1
我强烈建议使用IUS 社区项目用于在 CentOS 5 上升级 PHP 5.2 甚至 PHP 5.3 软件包的存储库。这些是一组维护良好且高质量的软件包,由Rackspace并保持,但不受支持由他们(当然,除非你是顾客)。
如果你是新手,安装说明可能有点难找。你正在寻找客户端使用指南在他们的 wiki 上。我将在这里重复说明以方便使用。
[root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-6.ius.el5.noarch.rpm
[root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm
[root@linuxbox ~]# rpm -Uvh ius-release*.rpm epel-release*.rpm
这将下载并安装电力供应处以及 IUS 存储库。
IUS 承诺不会使用与任何官方软件库(包括 EPEL)冲突的软件包名称(这是一件好事),但事情并没有那么简单yum upgrade php
。您需要先卸载所有现有的 PHP 软件包,然后从 IUS 安装相应的软件包。或者,您可以使用插件yum-plugin-replace
为 YUM 添加有用的“替换”功能。
手动
第一的:
[root@linuxbox ~]# rpm -qa | grep php
[root@linuxbox ~]# yum erase php
rpm -qa | grep php
列出每个已安装的 PHP 包。您将使用此列表从 IUS 安装所有相应的单个 PHP 包yum erase php
命令只会删除 PHP 及其依赖的包
最后:
[root@linuxbox ~]# yum search php52
[root@linuxbox ~]# yum install php52 php52-common php52-pecl-apc php52-mysql ...
yum search php52
列出可用的 PHP 5.2 包yum install
安装您选择的 PHP 5.2 包。您可以使用在第一步中获得的列表来确定您需要哪些
yum 插件替换
[root@linuxbox ~]# yum install yum-plugin-replace
[root@linuxbox ~]# yum replace php --replace-with php52
这将神奇地确定要删除哪些 PHP 包,以及要为您安装哪些匹配的 php52 包。