如何在 CentOS 上安全地降级 PHP(7.1 至 7.0)

如何在 CentOS 上安全地降级 PHP(7.1 至 7.0)

我有一台关键任务生产 CentOS 服务器,运行来自 remi repo 的 PHP7.1。我需要将 PHP 降级到 7.0。如何安全地执行此操作(使用哪些命令)且不停机?以下是一些输出,以提供一些上下文。

# yum info php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.linux.duke.edu
 * epel: fedora-epel.mirrors.tds.net
 * extras: mirror.linux.duke.edu
 * remi-php71: remi.mirror.wearetriple.com
 * remi-safe: remi.mirror.wearetriple.com
 * updates: mirror.es.its.nyu.edu
Installed Packages
Name        : php
Arch        : x86_64
Version     : 7.1.12
Release     : 4.el7.remi
Size        : 9.4 M
Repo        : installed
From repo   : remi-php71
Summary     : PHP scripting language for creating dynamic web sites

我最初升级到 PHP7.1 的方式是通过为 PHP 启用 remi php7.1 repo,因此现在仅打印php包的信息会显示如上所示的 php7.1 包信息。我需要的是yum info php返回可以在 remi 的php70包中找到的 php 7.0 包:

# yum info php70
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.linux.duke.edu
 * epel: fedora-epel.mirrors.tds.net
 * extras: mirror.linux.duke.edu
 * remi-php71: remi.mirror.wearetriple.com
 * remi-safe: remi.mirror.wearetriple.com
 * updates: mirror.es.its.nyu.edu
Available Packages
Name        : php70
Arch        : x86_64
Version     : 1.0
Release     : 5.el7.remi
Size        : 2.9 k
Repo        : remi-safe
Summary     : Package that installs PHP 7.0
License     : GPLv2+
Description : This is the main package for php70 Software Collection,
            : that install PHP 7.0 language.

什么命令可以实现这一点并用 php7.0 替换 php7.1?

答案1

你应该能够使用 来实现这一点yum downgrade。你的情况的命令应该是这样的

yum downgrade php

这将为您提供 yum 将执行的操作以及继续的选项。您可能需要执行

yum --disablerepo remi-php71 downgrade php

如果第一个命令没有显示降级路径。

与往常一样,在生产机器上执行此操作之前请先进行测试。

答案2

您可以尝试使用命令检查 yum 历史记录yum history。如果您发现安装 PHP7.1 而不是 PHP7.0 的步骤,则可以通过 将其恢复yum history undo <Step ID>

答案3

这应该可以降级使用 remi-repo 安装的大多数 PHP 版本。

您可能已经在 etc/yum.repos.d/ 中拥有 remi-php71.repo 和 remi-php70.repo,如果您没有要降级到的版本的 repo 文件,请确保先安装该文件。

通过编辑该版本的文件(remi-php71.repo)并更改enabled=1为来禁用当前版本enabled=0

enabled=0通过编辑该版本的文件(remi-php70.repo)并将第一个更改为来启用您想要降级到的版本enabled=1(注意:仅第一个,不要意外启用 debuginfo 或 test 下的版本)

然后:

sudo yum downgrade php

你可能会收到很多这样的信息

Error: Package: php-7.x.remi.x86_64 (remi-php7x)
           Requires: php-common(x86-64) = 7.x.el7.remi

根据该错误,您应该将 php-common 添加到您的命令中:

sudo yum downgrade php php-common

可能会返回额外的错误,其中包括需要包含在 yum downgrade 命令中的其他软件包。继续将它们添加到列表中。经过几次尝试后,yum 应该会很乐意真正执行降级。

检查是否成功:

php -version

如果您使用此功能,请不要忘记重新启动 php-fpm。

相关内容