Php

Cent OS 升級 PHP

  • February 23, 2011

我正在解決客戶端伺服器上的一系列安全問題,以使它們符合信用卡法等。

首要任務是將 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 有類似的東西嗎?此輸出使它看起來也忽略了所有主包儲存庫。

我強烈建議使用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

這將為您下載並安裝EPEL和 IUS 儲存庫。

IUS 承諾不會使用與任何官方 repos 衝突的包名稱,包括 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 軟體包。您將使用在第一步中獲得的列表來確定您需要哪個

百勝外掛替換

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

[root@linuxbox ~]# yum replace php --replace-with php52

這將神奇地確定要刪除哪些 PHP 包,以及為您安裝哪些匹配的 php52 包。

引用自:https://serverfault.com/questions/214731