Установка / включение расширения PHP Pecl Intl в CentOs 5


8

Оригинальный вопрос:

У меня проблемы с установкой расширения PHP Pecl Intl на моем компьютере CentOs 5.

После установки icuи libicuс помощью следующих команд:

$ yum install icu
$ yum install libicu

Я попытался установить расширение Intl так:

$ /usr/bin/pecl install intl

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

checking whether to enable internationalization support... yes, shared
checking for icu-config... no
checking for location of ICU headers and libraries... not found
configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
ERROR: `/tmp/pear/temp/intl/configure --with-icu-dir=DEFAULT' failed

Обновить

После успешной установки разрабатываемой версии icu по предложению RusAlex (спасибо RusAlex), вот так:

$ yum install libicu-devel

Я столкнулся с новой проблемой, с которой я также столкнулся локально с помощью следующей команды:

$ /usr/bin/pecl install intl

Теперь выдает эту ошибку:

 /private/tmp/pear/temp/intl/collator/collator_class.c:92: error: duplicate 'static'
 /private/tmp/pear/temp/intl/collator/collator_class.c:96: error: duplicate 'static'
 /private/tmp/pear/temp/intl/collator/collator_class.c:101: error: duplicate 'static'
 /private/tmp/pear/temp/intl/collator/collator_class.c:107: error: duplicate 'static'
 make: *** [collator/collator_class.lo] Error 1
 ERROR: `make' failed

Похоже, что-то связано с тем, что PHP 5.3 уже связан с Intl. Но как я могу включить это расширение, если я посмотрю в своей PHP Info, чем я не могу найти ссылку на него ...

Ответы:


11
sudo yum install libicu
sudo yum install libicu-devel.x86_64
sudo /usr/bin/pecl install intl
sudo echo 'extension=intl.so' >> /etc/php.ini

И тебе хорошо идти. И лучше ввести расширение = intl.so вручную в php.ini или еще более элегантно создать новый файл .ini в каталоге /etc/php.d/.


Работал на меня. Centos 5.8 x86_64 с CPanel.
djskinner

для меня в строке 3: sudo / usr / bin / pecl install int, там написано «команда не найдена», я что-то пропустил, пожалуйста?
Dashrath


3

Это работало для меня на CentOS 5.6:

yum install gcc gcc-cpp gcc-c++

После этого intlисчезли все ошибки, связанные с



1
  1. /usr/bin/pecl install intl

  2. Поиск в журнале checking for icu-config... /usr/bin/icu-config*.
    Вам понадобится путь к каталогу, который есть /bin/icu-configпозже.

  3. Скачать php:

    wget http://us2.php.net/get/php-5.3.6.tar.gz/from/jp.php.net/mirror

    tar xvzf php-5.3.6.tar.gz

    cd php-5.3.6/ext/intl/

  4. скомпилируйте и установите модуль intl. phpize

    ./configure --enable-intl --with-icu-dir=/usr

    make

    make test

    sudo make install

  5. Наконец, добавить extension=intl.soв php.ini.


1

Кажется, вам нужно установить icu-devили icu-develупаковать или что-то подобное.

Вам нужен пакет разработки.


Спасибо, это дало мне немного больше, я соответственно обновил пост. Просто для справки: команда для установки разрабатываемой версии, которую я использовал,$ yum install libicu-devel
Marijn Huizendveld


0

У меня была та же проблема с CentOS, и я успешно установил INTL через pecl после:

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

yum -y install icu libicu libicu-devel 

2) пакет php-devel и phpize:

yum -y install php-devel phpize

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

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

(+1 к юри за gcc, gcc-cpp и gcc-c ++, извините, не могу комментировать из-за отсутствия рейтинга)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.