【问题标题】:Upgrading PHP on CentOS 6.5 (Final)在 CentOS 6.5 上升级 PHP(最终版)
【发布时间】:2014-02-25 11:32:33
【问题描述】:

我正在尝试更新我的 PHP(当前为 v:5.3.3 到最新的稳定 PHP 版本),但它没有发挥作用,它说没有什么要更新的。

任何帮助都会很有用。

一直说:

没有标记为更新的包

【问题讨论】:

  • 您输入什么命令来更新您的 PHP 版本?
  • yum update php,不过我已经尝试了一些
  • 试试 yum update 看看哪些软件包 yum 标记要更新
  • 它显示:加载的插件:fastestmirror,替换从缓存的主机文件加载镜像速度 * base:centos.mirror.triple-it.nl * epel:nl.mirror.eurid.eu * extras:centos。 mirror.triple-it.nl *更新:centos.mirror.triple-it.nl * webtatic-el5:nl.repo.webtatic.com 设置更新过程 没有标记为更新的软件包
  • 尝试按照这些说明进行操作。看起来 CentOS 还没有将 5.5.8 添加到他们的基础存储库中:if-not-true-then-false.com/2010/…

标签: php yum centos6


【解决方案1】:

正如 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

注意!
如果它不能完全解决您的所有依赖项,这可能会破坏您的网站,因此在某些情况下您可能需要几个额外的包。 See here 获取其他可用的 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

(感谢法布里齐奥·巴托洛穆奇)

【讨论】:

  • 如果其他人需要在 CentOS 5 上进行此升级,请改用此命令:rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
  • 我收到no Package php54w 错误。实际上,我对 55 和 56 也有同样的错误。知道如何解决这个问题吗?
  • 至于centOs 7,给你http://mirror.webtatic.com/yum/el7/epel-release.rpm
  • 这对我在 CentoOS 6.6 上根本不起作用。还好我以前拍过快照!
  • 只是想指出,centos 社区 wiki 不推荐此答案(webatic)中建议的 repo(请参阅:wiki.centos.org/AdditionalResources/Repositories)。他们说“IUS 或 SCL 是更好的选择。”
【解决方案2】:

对于 CentOS 6,PHP 5.3.3 是最新版本的 PHP,可通过 official CentOS package repository 获得。请记住,尽管PHP 5.3.3 was released July 22, 2010,官方 CentOS 6 PHP 包已于 2013 年 11 月 24 日更新。为什么?关键错误修复被向后移植。有关更多信息,请参阅此问题:"Why are outdated packages installed by yum on CentOS? (specifically PHP 5.1) How to fix?"

如果您想使用更新版本的 PHP,Les RPM de Remi 通过一个可以添加到 yum 包管理器的存储库提供 CentOS PHP 包。要将其添加为 yum 存储库,follow the site's instructions

注意:这类问题可能更适合Server Fault

【讨论】:

  • 谢谢,非常感谢!
  • webtatic.com 还通过安装此 rpm 提供 php 5.5/5.4。 rpm -Uvh mirror.webtatic.com/yum/el6/latest.rpm
  • 作为 CentOS 的新手,我怎么知道这些 repos 是值得信赖的?
  • @Liam 实际上,您不能保证任何软件都是值得信赖的。在这种情况下,如果您认为 PHP 源代码是可信赖的,但此存储库可能不可靠,您可以自己编译产品(以与存储库所有者相同的方式)并比较哈希值(例如,与 sha1sum)以查看是否相等。
  • @JacobBudin 没错,但我认为对非官方回购持健康的怀疑态度是件好事
【解决方案3】:

我设法按照 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
  • 将网页通过管道传输到 shell 脚本几乎总是不安全。
【解决方案4】:

这是对我来说最简单的方法:在 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 冲突
  • 自从这个答案之后很久了,但我看到 epel-release-latest-7.noarch.rpm 已下载,但是否已安装?
  • 安装使用rpm -Uvh ius-release*.rpm
【解决方案5】:
  1. 验证当前版本的 PHP 输入以下内容以查看当前的 PHP 版本:

    php -v

    应该输出类似:

    PHP 5.3.3 (cli)(构建时间:2015 年 7 月 9 日 17:39:00) 版权所有 (c) 1997-2010 PHP 集团 Zend Engine v2.3.0,版权所有 (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 升级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

【讨论】:

    【解决方案6】:

    在 CentOS 6 系统上升级到 PHP7 的步骤。取自install-php-7-in-centos-6

    要安装最新的 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 年中,其他答案已经很好地涵盖了这一点。
    • 以上答案不包括将 CentOS 6 升级到 PHP 7 的步骤。所以我为此添加了答案。
    【解决方案7】:

    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
    

    【讨论】:

      猜你喜欢
      • 2014-04-19
      • 2016-09-29
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 2014-02-13
      • 1970-01-01
      相关资源
      最近更新 更多