Skip to main content

Установка PHP 7 и 8 на Linux CentOS 7

Добавление репозиториев и установка

Первый репозиторий, который мы добавим — EPEL, второй на выбор — либо REMI, либо webtatic.

Epel

Установка выполняется командой:

yum install epel-release -y


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 -y

Устанавливаем php:

yum install php php-cli php-mysqlnd php-json php-gd php-ldap php-odbc php-pdo php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip -y

Или (без включения репозитория командой yum-config-manager):

yum --enablerepo=remi-php74 install php -y

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- (все расширения). В противном случае, мы получим ошибку зависимостей.