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