在CentOS 6.5 (最终版)上升级PHP

65

我尝试将我的PHP版本更新(目前为v:5.3.3到最新的稳定PHP版本),但它没有成功,并且显示没有可更新的内容。

有任何帮助都将非常有用。

一直显示:

没有标记需要更新的软件包


你输入了什么命令来更新你的 PHP 版本? - Mike Koch
yum update php,我已经尝试了几个。 - BCLtd
1
尝试运行 yum update 命令,查看 yum 标记为更新的软件包。 - Mike Koch
已加载插件:fastestmirror,replace 从缓存的主机文件中加载镜像速度
  • base: centos.mirror.triple-it.nl
  • epel: nl.mirror.eurid.eu
  • extras: centos.mirror.triple-it.nl
  • updates: centos.mirror.triple-it.nl
  • webtatic-el5: nl.repo.webtatic.com 设置更新进程 没有标记为更新的软件包
- BCLtd
1
尝试按照以下指示操作。看起来CentOS还没有将5.5.8版本添加到其基本仓库中:http://www.if-not-true-then-false.com/2010/install-apache-php-on-fedora-centos-red-hat-rhel/ - Mike Koch
升级到php7的好指南 - https://www.tecmint.com/install-php-7-in-centos-6/ - SyntaxGoonoo
7个回答

123

正如Jacob所提到的,目前CentOS软件包仓库似乎只有PHP 5.3可用。但是对我来说,这些命令似乎也起作用了...

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum remove php-common       # Need to remove this, otherwise it conflicts
yum install php56w
yum install php56w-mysql
yum install php56w-common
yum install php56w-pdo
yum install php56w-opcache
php --version               # Verify version has been upgraded

如果需要,您可以选择使用php54wphp55w

注意!
这可能会导致网站出现问题,如果它不能完全解决所有依赖关系,因此在某些情况下,您可能需要一些额外的软件包。有关其他可用的PHP 5.6模块的列表,请点击此处

如果遇到问题并需要重置回默认设置,您可以使用以下命令:

sudo yum remove php56w
sudo yum remove php56w-common
sudo yum install php-common
sudo yum install php-mysql
sudo yum install php

(感谢Fabrizio Bartolomucci的贡献)


5
如果有其他人需要在CentOS 5上进行此升级,请改用以下命令:rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm - Matt Browne
1
我遇到了“没有php54w包”的错误。实际上,我在55和56上也遇到了同样的错误。你有什么想法如何解决这个问题吗? - TMH
2
对于CentOS 7,这是链接:http://mirror.webtatic.com/yum/el7/epel-release.rpm - Muhaimin
1
在CentOS 6.6上,那对我完全没用。幸运的是,我在之前做了一个快照! - Timo002
2
我只是想指出,这个答案中建议的仓库(webatic)并不被CentOS社区维基所推荐(参见:https://wiki.centos.org/AdditionalResources/Repositories)。他们说:“IUS或SCL是更好的选择。” - Ruben Estrada
显示剩余11条评论

29

对于CentOS 6而言,PHP 5.3.3是通过官方CentOS软件包仓库提供的最新版本。需要注意的是,尽管PHP 5.3.3于2010年7月22日发布,但官方CentOS 6 PHP软件包已于2013年11月24日更新。为什么?因为关键的错误修复被反向移植。有关更多信息,请参见此问题:"为什么yum在CentOS上安装过时的软件包?(特别是PHP 5.1)如何解决?"

如果您想使用更高版本的PHP,则可以通过Les RPM de Remi提供的存储库获取CentOS PHP软件包。要将其添加为yum存储库,请按照该站点的说明操作

注:这种类型的问题可能更适合提交到Server Fault


谢谢,非常感谢! - BCLtd
1
webtatic.com还提供通过安装此rpm包来安装php 5.5/5.4。 rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm - jbrahy
5
作为 CentOS 的新手,我如何知道这些软件仓库是可靠的? - Liam
3
实际上,就实践而言,您无法确保任何软件是可信的。如果您相信 PHP 源代码是可信的,但这个仓库可能不可信,那么您可以像仓库所有者一样编译产品,并使用哈希值(例如 sha1sum)进行比较,以查看它们是否相等。 - Jacob Budin
@JacobBudin 确实,但我认为对非官方仓库持有一定的健康怀疑态度是明智之举。 - Robert Dundon

8

根据Simon的建议,我成功安装了php54w,但是我的网站停止工作了,可能是由于与php-mysql或其他模块不兼容。甚至疯狂地恢复旧状态也没有什么好处:对于任何处于我自己情况的人,步骤如下:

sudo yum remove php54w
sudo yum remove php54w-common
sudo yum install php-common
sudo yum install php-mysql
sudo yum install php

如果有人提交了更新所有php包的完整过程,那就太好了。那是我的生产服务器,我的心还在快速跳动。


如果您想在LAMP服务器上升级php而不遇到任何问题,请尝试以下操作:wget -q -O - http://www.atomicorp.com/installers/atomic | sh,然后运行yum update php - Dmitry
1
将网页传输到shell脚本几乎总是不安全的。 - Kzqai

6

以下是我找到的最简单的方法:在CentOS 6或7上安装PHP 5.6:

对于CentOS 6,请按照以下顺序输入以下命令:

yum -y update
yum -y install epel-release
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
wget https://centos6.iuscommunity.org/ius-release.rpm
rpm -Uvh ius-release*.rpm
yum -y update
yum -y install php56u php56u-opcache php56u-xml php56u-mcrypt php56u-gd php56u-devel php56u-mysql php56u-intl php56u-mbstring php56u-bcmath

CentOS 7.按照顺序输入以下命令:

yum -y update
yum -y install epel-release
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget https://centos7.iuscommunity.org/ius-release.rpm
rpm -Uvh ius-release*.rpm
yum -y update
yum -y install php56u php56u-opcache php56u-xml php56u-mcrypt php56u-gd php56u-devel php56u-mysql php56u-intl php56u-mbstring php56u-bcmath

很抱歉 - 由于声誉原因,我无法发布源URL。


我收到错误信息:php56u与php-5.4.16-42.el7.x86_64发生冲突。 - ESP32
距离这个回答已经过了一段时间,但我看到 epel-release-latest-7.noarch.rpm 已经被下载了,但是它是否已经安装了呢? - Robert Dundon
使用以下命令安装: rpm -Uvh ius-release*.rpm - Bonfix Ngetich

4
  1. 验证当前PHP版本 输入以下命令以查看当前的PHP版本:

    php -v

    应该会输出类似于以下内容:

    PHP 5.3.3 (cli) (built: Jul 9 2015 17:39:00) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

  2. 安装Remi和EPEL RPM存储库

如果你还没有安装过,那请安装Remi和EPEL存储库。

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm && rpm -Uvh epel-release-latest-6.noarch.rpm



wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm && rpm -Uvh remi-release-6*.rpm

全局启用REMI软件源:

nano /etc/yum.repos.d/remi.repo

在看起来像[remi]的部分下进行以下更改:
[remi]
name=Remi's RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/remi/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/remi/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

此外,在看起来像[remi-php55]的部分进行以下更改:

[remi-php56]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/php56/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/php56/mirror
# WARNING: If you enable this repository, you must also enable "remi"
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

按CTRL-O保存,按CTRL-X关闭编辑器

  1. 升级PHP 5.3至PHP 5.6 现在我们可以升级PHP。只需输入以下命令:

    yum -y upgrade php*

更新完成后,让我们验证您是否已安装PHP 5.6:

php -v

应该看到类似以下输出:
PHP 5.6.14 (cli) (built: Sep 30 2015 14:07:43) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

1

IUS 提供一个安装脚本,用于订阅他们的仓库并导入相关的 GPG 密钥。确保你在你的主目录下,并使用 curl 获取该脚本:

curl 'https://setup.ius.io/' -o setup-ius.sh
sudo bash setup-ius.sh

安装所需的软件包-:
sudo yum install -y mod_php70u php70u-cli php70u-mysqlnd php70u-json php70u-gd php70u-dom php70u-simplexml php70u-mcrypt php70u-intl

1

将CentOS 6系统升级到PHP7的步骤。摘自在CentOS 6中安装PHP 7

要安装最新的PHP 7,您需要将EPEL和Remi存储库添加到CentOS 6系统中。

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-6.rpm

现在安装yum-utils,这是一组有用的工具,可以增强yum的默认软件包管理功能。
yum install yum-utils

在这一步中,您需要使用yum-config-manager实用程序启用Remi存储库,作为安装PHP的默认存储库。
yum-config-manager --enable remi-php70

如果您想在CentOS 6上安装PHP 7.1或PHP 7.2,只需按照以下步骤启用即可。
yum-config-manager --enable remi-php71 
yum-config-manager --enable remi-php72

然后使用以下命令在CentOS 6上安装PHP 7,并安装所有必要的PHP模块。

yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo

请按照以下步骤检查您系统上安装的PHP版本。

php -V 

我觉得在过去的5年里,其他答案已经很好地涵盖了这个问题。 - miken32
以上答案没有包括将CentOS 6升级到PHP 7的步骤。因此,我已经添加了一个答案。 - SyntaxGoonoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接