У меня есть критически важный производственный сервер 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?
Вы можете попробовать проверить историю yum с помощью команды yum history
. Если вы найдете шаг, на котором вы устанавливаете PHP7.1 вместо PHP7.0, вы можете вернуть его, выполнив yum history undo
.
Вы сможете добиться этого с помощью ] ням понизить
. Команда в вашем случае должна быть чем-то вроде
yum downgrade php
, которая укажет вам действия, которые будет выполнять yum, и возможность продолжить. Возможно, вам придется выполнить
yum --disablerepo remi-php71 downgrade php
, если первая команда не показывает путь к более ранней версии.
Как всегда, проверьте это перед выполнением на производственной машине.
Это должно работать для понижения версии большинства установленных 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, если вы его используете.