У меня проблемы с установкой расширения 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
/usr/bin/pecl install intl
Журнал поиска checking for icu-config... /usr/bin/icu-config*
.
Вам понадобится путь к каталогу, в котором есть /bin/icu-config
потом.
Скачайте 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/
скомпилировать и установить модуль intl. phpize
./configure --enable-intl --with-icu-dir=/usr
make
make test
sudo make install
Наконец, добавьте 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 ++, извините, не могу комментировать из-за отсутствия рейтинга)