Установка PHP 7 и 8 на Linux CentOS 7
Добавление репозиториев и установка
Первый репозиторий, который мы добавим — EPEL, второй на выбор — либо REMI, либо webtatic.
Epel
Установка выполняется командой:
yum install epel-release
REMI
Добавляем репозиторий:
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
По умолчанию, репозитории для разных версий php отключены. Мы должны сами определить версию устанавливаемой php.
Посмотреть список доступных для включения версий можно командой:
ls /etc/yum.repos.d/remi-*
Включить репозиторий для нужной версии можно командой:
yum-config-manager --enable remi-php74
или, например:
yum-config-manager --enable remi-php81
* в данном примере мы будем устанавливать php версии 7.4 или 8.1.
Если мы молучим ошибку yum-config-manager: command not found, устанавливаем yum-utils:
yum install yum-utils
Устанавливаем php:
yum install php
Или (без включения репозитория командой yum-config-manager):
yum --enablerepo=remi-php74 install php
Webtatic
Устанавливаем репозиторий на webtatic.com:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Теперь устанавливаем php7:
yum --enablerepo=webtatic install php72w
* в данном примере мы поставим php версии 7.2.
Проверка
Проверить рабочую версию php можно следующей командой:
php -v
или:
php -r "phpinfo();" | grep "PHP Version"
Установка расширений
Если мы включили репозиторий с помощью yum-config-manager, то установка расширений выполняется обычной командой, например:
yum install php-mysqli
Иначе, расширения для нужных версий php устанавливаем с указанием репозитория, например:
yum --enablerepo=remi-php74 install php-mysqli
... или:
yum --enablerepo=webtatic install php-mysqli
Downgrade
При обновлении PHP на более новую версию проблем не возникает, и мы можем его выполнять установкой (yum install). Для понижения версии php необходимо использовать yum downgrade:
yum --enablerepo=remi-php73 downgrade php php-*
* обратите внимание, что мы для downgrade указываем php и все пакеты, которые начинаются на php- (все расширения). В противном случае, мы получим ошибку зависимостей.