Подтвердить что ты не робот

Как установить расширение PHP на CentOS?

Я ничего не знаю об установке пакетов. Мне удалось установить Zend Framework 1 с yum некоторое время назад, следуя очень конкретному учебнику.

Теперь мне нужно расширение PHP intl, и я не могу понять, как его установить.

Я сделал

yum list php*intl

и увидел, что есть один доступный. Поэтому я сделал

yum install php-intl

и получил следующее сообщение об ошибке:

Error: Package: php-intl-5.3.3-14.el6_3.x86_64 (updates)
       Requires: php-common = 5.3.3-14.el6_3
       Installed: php-common-5.3.17-2.el6.remi.x86_64 (@remi)
           php-common = 5.3.17-2.el6.remi
       Available: php-common-5.3.3-3.el6_2.8.x86_64 (base)
           php-common = 5.3.3-3.el6_2.8
       Available: php-common-5.3.3-14.el6_3.x86_64 (updates)
           php-common = 5.3.3-14.el6_3
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Я не пробовал предложения, упомянутые в сообщении, потому что я не знал, что они будут делать, и я боюсь что-то сломать. Это производственная машина, и у меня нет другой машины для тестирования. Я попытался найти rpm для загрузки, которая была той же версии, что и мой PHP, но не повезло.

Что делают эти два предложения и можно ли их попробовать? Что еще я могу попытаться установить внутреннее расширение?

4b9b3361

Ответ 1

Поскольку у вас есть php-commom из remi-репозиториев, вам также нужно получить php-intl из remi.

Добавьте --enable-repo вариант следующим образом:

yum --enablerepo=remi install php-intl

Ответ 2

Если у вас более высокая версия PHP, например, 5.6, вам необходимо включить оба remi и remi-php56 repos для установки всех дополнительных зависимостей:

yum --enablerepo=remi,remi-php56 install php-intl

Ответ 3

Я успешно установил INTL через pecl, выполнив следующие шаги.

1) установить icu и libs:

yum -y install icu libicu libicu-devel

2) php-devel package и phpize:

yum -y install php-devel phpize

3) и, конечно, gcc:

yum -y install gcc gcc-cpp gcc-c++

Это работает для версии me.my php 5.6.12

Ответ 4

Yum выдает ошибку, потому что мы пытаемся обновить несколько пакетов до конфликтующих версий. Выход yum говорит, что для php-intl требуется определенная версия php-common. Удаление всего мусора:

Requires 5.3.3-14
Installed 5.3.17-2
Available 1st Option: 5.3.3-3
Available 2nd Option: 5.3.3-14

Это говорит нам, что вы уже установили более позднюю версию php-common (5.3.17-2), чем разрешено php-intl.

Я думаю, у вас есть два варианта. (Как новичок сам, я бы не пытался их без практики в среде разработчиков.)

1) Удалить пакеты remi

Цитата из аналогичного вопроса о Суперпользователе. "Попробуйте удалить все пакеты remi php, отключите репозиторий и установите пакеты centos 6 php 5.3.3 по умолчанию".

https://superuser.com/questions/505340/centos-6-how-to-install-php-mysql-when-php-common-remi-is-present

2) Обновление php-common для версии 5.3.3-14

yum downgrade php-common

Я понятия не имею, если вы столкнетесь с большим количеством проблем с зависимостями и должны отказаться от других пакетов. Я нашел здесь более подробную информацию.

https://www.centos.org/modules/newbb/viewtopic.php?topic_id=40567&forum=56

На других сайтах обмена ссылками отображаются похожие вопросы.

https://serverfault.com/search?q=centos+error+package (370 результатов)

https://unix.stackexchange.com/search?q=centos+error+package (57 результатов)

Ответ 5

для PHP 7.0 с использованием

#list all options    
$ sudo yum list php7*intl

#install
$ sudo yum install php70-intl