Cent OS 升级 PHP

gre*_*ghz 3 php centos centos5

我正在解决客户端服务器上的一系列安全问题,以使它们符合信用卡法等。

首要任务是将 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
Run Code Online (Sandbox Code Playgroud)

我对 CentOS 相当陌生,但是对于 Debian/Ubuntu,您可以添加 PPA 以允许新的软件包。CentOS 有类似的东西吗?此输出使它看起来好像也忽略了所有主包存储库。

hob*_*ave 6

我强烈建议使用IUS 社区项目存储库来升级您的 PHP 5.2,甚至 CentOS 5 上的 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
Run Code Online (Sandbox Code Playgroud)

这将为您下载并安装EPEL和 IUS 存储库。

IUS 承诺不会在任何官方存储库中使用冲突的包名称,包括 EPEL(这是一件好事),事情并不像yum upgrade php. 您需要先卸载所有现有的 PHP 软件包,然后从 IUS 安装相应的软件包。或者,您可以使用该yum-plugin-replace插件向 YUM 添加有用的“替换”功能。


手动

第一的:

[root@linuxbox ~]# rpm -qa | grep php

[root@linuxbox ~]# yum erase php
Run Code Online (Sandbox Code Playgroud)
  • 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 ...
Run Code Online (Sandbox Code Playgroud)
  • yum search php52 列出可用的 PHP 5.2 包
  • yum install安装您选择的 PHP 5.2 软件包。您将使用在第一步中获得的列表来确定您需要哪些

百胜插件替换

[root@linuxbox ~]# yum install yum-plugin-replace

[root@linuxbox ~]# yum replace php --replace-with php52
Run Code Online (Sandbox Code Playgroud)

这将神奇地确定要删除哪些 PHP 包,以及要为您安装哪些匹配的 php52 包。