Для того чтоб на сервере было несколько версий PHP необходимо его не обновлять, а именно установить.
Устанавливаем репозитории федоры (epel-release) и Remi:
yum install -y epel-release yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Просмотр установленных пакетов другой версии php. Для этого посмотрим какая версия PHP стоит на сервере:
php -v
Если на сервера несколько версий PHP, то можно их посмотреть командой:
yum list installed php*
Если у нас стоит и пятая и седьмая версия PHP, но мы хотим обновить именно седьмую версию, например, с PHP 7.0 до PHP 7.2, то самым оптимальным будет установка всех аналогичных пакетов PHP 7.0 для PHP 7.2, а после настройки и проверки работоспособности PHP 7.2 удаление PHP 7.0:
yum list installed php70* yum install -y --enablerepo=remi php72 php72-php php72-php-cli php72-php-common php72-php-devel php72-php-fpm php72-php-gd php72-php-intl php72-php-json php72-php-mbstring php72-php-mcrypt php72-php-mysqlnd php72-php-opcache php72-php-pdo php72-php-pear php72-php-pecl-geoip php72-php-pecl-solr2 php72-php-pecl-zip php72-php-process php72-php-soap php72-php-xml php72-php-xmlrpc php72-runtime php72-php-bcmath php72-php-pecl-imagick
Смотрим, появилась ли служба и какое у неё состояние при автозагрузке:
systemctl list-unit-files --type service | grep php72
При необходимости включаем службу в атозагрузку (если она отключена) и проверяем её состояние:
systemctl enable php72-php-fpm systemctl is-enabled php72-php-fpm
Запускаем службу (1) и проверяем её состояние (2):
service php72-php-fpm start service php72-php-fpm status
Если служба не запустилась выдав ошибку, то смотрим причину ошибки набрав команду:
systemctl status php72-php-fpm
ERROR: unable to bind listening socket for address ‘127.0.0.1:9000’: Address already in use
Так как порт занят, то мы скопируем конфигурационный файл (2) из папки /etc/opt/remi/php72/php-fpm.d/ в папку /etc/opt/remi/php70/php-fpm.d/, предварительно сохраним версию конфигурационного файла для PHP 7.2 (1), а после копирования отключим конфиг файл для PHP 7.0 (3):
mv /etc/opt/remi/php72/php-fpm.d/www.conf /etc/opt/remi/php72/php-fpm.d/www.dis cp /etc/opt/remi/php70/php-fpm.d/www.conf /etc/opt/remi/php72/php-fpm.d/www.conf mv /etc/opt/remi/php70/php-fpm.d/www.conf /etc/opt/remi/php70/php-fpm.d/www.dis
Перезапускаем старую службу (чтоб освободить порт или сокет) и запускаем новую службу (обязательно нужно использовать restart, так как reload сокет или порт не освободит):
service php70-php-fpm restart && service php72-php-fpm start
Аналогично копируем все остальные конфигурационные файлы, но лучше по одному копировать и каждый раз перезапускать службы:
service php70-php-fpm restart && service php72-php-fpm restart
Для правки конфигурационного файла набираем:
yum install -y nano nano /etc/opt/remi/php72/php-fpm.d/название_файла.conf
Пример:
nano /etc/opt/remi/php72/php-fpm.d/www.conf
После правки всегда нужно безопасно перезапускать службу:
service php72-php-fpm reload
или
systemctl reload php72-php-fpm
Если хотим включить репозиторий remi-php72, то в файле /etc/yum.repos.d/remi-php72.repo в строке 9 ‘enabled=0‘ заменяем на ‘enabled=1‘. Но нужно помнить, что стоящий php по умолчанию будет обновлён до версии php 7.2 в CentOS 7. Поэтому лучше не включать, а обновление php72 проводить стандартным способом:
yum update -y php72*