Установите пакеты php версии 5.4 с помощью yum, пока у меня установлен php 7.

Вопрос или проблема

Я установил версию PHP 7 на своем centOs.

Теперь у меня возникла ошибка:

неопределенная функция mb_internal_encoding()

Поэтому я решил установить php-mbstring (с помощью yum install php-mbstring), но столкнулся со следующей ошибкой:

Ошибка: php70u-common конфликтует с php-common-5.4.16-43.el7_4.x86_64

Ошибка: php70u-json конфликтует с php-common-5.4.16-43.el7_4.x86_64

Но теперь, когда я устанавливаю php-mbstring, он хочет установить версию php-mbstring 5.4.

Как я могу сказать yum загружать последние версии расширений и пакетов php?

У вас установлены и php5, и php7, что вызывает конфликт. Если вы используете только php7, то удалите другую версию, используя

yum remove php-*

Установите необходимые пакеты php7 только после полного удаления более старой версии. Если вам нужно установить несколько версий php, пожалуйста, поищите в гугле конкретную процедуру. Это не очень просто.

Примечание При удалении программного обеспечения с подстановочными знаками не забудьте проверить, что yum собирается удалить, прежде чем продолжить.

Запустите следующее:

yum remove php php-cli php-common php-gd php-ldap php-mysql php-odbc php-pdo php-pear php-pecl-apc php-pecl-memcache php-pgsql php-soap php-xml php-xmlrpc -y

Теперь запустите yum install php-mbstring

Это должно помочь вам.

Если вам нужно одновременно установить как официальный centos php (5.4), так и более новую версию, репозиторий IUS предлагает пакеты с новыми версиями, чем репозитории centos/epel и использует другое наименование (например, php56u, php70u…), чтобы избежать конфликтов.

Использование репозитория ius описано здесь: https://ius.io/GettingStarted/

Ответ или решение

Установка PHP 5.4 на систему с установленным PHP 7: Решение конфликта

Когда на вашей системе CentOS установлен PHP 7, и вы хотите установить пакет php-mbstring, возникает конфликт с другими версиями PHP, включая 5.4. Эта проблема может быть следствием того, что у вас одновременно установлены пакеты PHP разных версий, что приводит к конфликтам между версиями библиотек.

Шаги для решения проблемы:

  1. Удаление конфликта: Прежде всего, чтобы избежать конфликта между версиями PHP, рекомендуется удалить устаревшую версию PHP 5.4. Для этого выполните команду:

    yum remove php-*

    Важно внимательно просмотреть, какие пакеты будут удалены перед подтверждением, чтобы избежать нежелательного удаления.

  2. Очистка системы: После удаления всех пакетов PHP 5.4, выполните команду для удаления всех пакетов, связанных с PHP. Например:

    yum remove php php-cli php-common php-gd php-ldap php-mysql php-odbc php-pdo php-pear php-pecl-apc php-pecl-memcache php-pgsql php-soap php-xml php-xmlrpc -y

    Это удалит все пакеты, которые могут мешать установке необходимых расширений для PHP 7.

  3. Установка необходимых расширений: После того как вы удалили старую версию PHP, вы можете установить нужное расширение php-mbstring:

    yum install php-mbstring

    При этом убедитесь, что вы используете репозиторий, который поддерживает PHP 7. В случае установки нужных дополнительных пакетов, возможно, вам придется установить их через EPEL или IUS репозитории. Репозиторий IUS предоставляет более новые версии PHP.

  4. Использование репозитория IUS: Если вам необходимо поддерживать несколько версий PHP одновременно (например, и 5.4, и 7), рекомендуется использовать IUS репозиторий. Он предоставляет пакеты с новыми релизами и использует другую нумерацию, что предотвращает конфликты:

    • Для начала, вам нужно установить IUS репозиторий. Следуйте инструкциям на официальном сайте: IUS Getting Started.
  5. Установка пакетов из IUS: После установки IUS вы можете устанавливать пакеты PHP, например, так:

    yum install php70u php70u-mbstring

    Это позволит вам установить PHP 7 и необходимые расширения без конфликта с PHP 5.4.

Резюме

Работа с различными версиями PHP на одной системе может быть сложной задачей из-за конфликтующих библиотек. Ключом к успешной установке является последовательное удаление старых конфликтующих пакетов и правильная установка необходимых версий и расширений. Если вы планируете использовать несколько версий PHP, рекомендуется использовать репозиторий IUS, который предлагает удобные инструменты для управления версиями.

Оцените материал
Добавить комментарий

Капча загружается...