Назад | Перейти на главную страницу

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

Исходный вопрос:

У меня проблемы с установкой расширения 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) вот так:

$ 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, я не могу найти на него никакой ссылки ...

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

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

Вы правы, вы не можете установить пакет PECL, потому что с PHP 5.3 Intl является частью PHP.

Если вы установили PHP с помощью YUM, вы можете просто загрузить пакет intl:

> yum list php*intl
> yum install <file_from_above>

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

yum install gcc gcc-cpp gcc-c++

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

все, что тебе нужно

yum install libicu-devel
  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.

Вроде нужно установить icu-dev или icu-devel пакет или что-то подобное.

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

у вас установлены gcc, gcc-cpp и gcc-c ++ ... По крайней мере, это была одна из моих проблем во время установки - http://itblogspot.net/php-install-intl

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

1) установите icu и библиотеки:

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 к yuri для gcc, gcc-cpp и gcc-c ++, извините, не могу комментировать из-за отсутствия рейтинга)