Как безопасно понизить версию PHP (с 7.1 до 7.0) на CentOS

У меня есть критически важный производственный сервер CentOS, на котором работает PHP7.1 из репозитория remi. Мне нужно понизить версию 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, я включил репозиторий remi php7.1 для PHP, поэтому теперь при печати информации только для пакета php отображается пакет php7.1 информация, как показано выше. Мне нужно, чтобы yum info php возвращал пакет php 7.0, который можно найти в пакете remi php70 :

# 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.1 на php7 .0?

0
задан 2 December 2017 в 13:20
3 ответа

Вы можете попробовать проверить историю yum с помощью команды yum history . Если вы найдете шаг, на котором вы устанавливаете PHP7.1 вместо PHP7.0, вы можете вернуть его, выполнив yum history undo .

0
ответ дан 4 December 2019 в 16:04

Вы сможете добиться этого с помощью ] ням понизить . Команда в вашем случае должна быть чем-то вроде

yum downgrade php

, которая укажет вам действия, которые будет выполнять yum, и возможность продолжить. Возможно, вам придется выполнить

yum --disablerepo remi-php71 downgrade php

, если первая команда не показывает путь к более ранней версии.

Как всегда, проверьте это перед выполнением на производственной машине.

1
ответ дан 4 December 2019 в 16:04

Это должно работать для понижения версии большинства установленных PHP-версий. используя реми-репо.

У вас, вероятно, уже есть remi-php71.repo и remi-php70.repo в etc / yum.repos.d / Если у вас нет файла репо для версии, до которой вы хотите перейти на более раннюю версию, обязательно установите его первый.

Отключите текущую версию, отредактировав файл для этой версии (remi-php71.repo) и изменив enabled = 1 на enabled = 0

Включив версию, до которой вы хотите вернуться отредактировав файл для этой версии (remi-php70.repo) и изменив первый enabled = 0 на 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, если вы его используете.

0
ответ дан 3 February 2020 в 19:24

Теги

Похожие вопросы