Вопрос или проблема
Я установил версию 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 разных версий, что приводит к конфликтам между версиями библиотек.
Шаги для решения проблемы:
-
Удаление конфликта: Прежде всего, чтобы избежать конфликта между версиями PHP, рекомендуется удалить устаревшую версию PHP 5.4. Для этого выполните команду:
yum remove php-*
Важно внимательно просмотреть, какие пакеты будут удалены перед подтверждением, чтобы избежать нежелательного удаления.
-
Очистка системы: После удаления всех пакетов 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.
-
Установка необходимых расширений: После того как вы удалили старую версию PHP, вы можете установить нужное расширение
php-mbstring
:yum install php-mbstring
При этом убедитесь, что вы используете репозиторий, который поддерживает PHP 7. В случае установки нужных дополнительных пакетов, возможно, вам придется установить их через EPEL или IUS репозитории. Репозиторий IUS предоставляет более новые версии PHP.
-
Использование репозитория IUS: Если вам необходимо поддерживать несколько версий PHP одновременно (например, и 5.4, и 7), рекомендуется использовать IUS репозиторий. Он предоставляет пакеты с новыми релизами и использует другую нумерацию, что предотвращает конфликты:
- Для начала, вам нужно установить IUS репозиторий. Следуйте инструкциям на официальном сайте: IUS Getting Started.
-
Установка пакетов из IUS: После установки IUS вы можете устанавливать пакеты PHP, например, так:
yum install php70u php70u-mbstring
Это позволит вам установить PHP 7 и необходимые расширения без конфликта с PHP 5.4.
Резюме
Работа с различными версиями PHP на одной системе может быть сложной задачей из-за конфликтующих библиотек. Ключом к успешной установке является последовательное удаление старых конфликтующих пакетов и правильная установка необходимых версий и расширений. Если вы планируете использовать несколько версий PHP, рекомендуется использовать репозиторий IUS, который предлагает удобные инструменты для управления версиями.