Original question:
I'm having trouble installing the PHP Pecl Intl extension on my CentOs 5 machine.
After installing both icu
and libicu
with the following commands:
$ yum install icu
$ yum install libicu
I tried to install the Intl extension like so:
$ /usr/bin/pecl install intl
I selected to search for the default location for the ICU libraries and header files. It ends up crashing like this:
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
update
After successfully installing the development version of icu as suggested by RusAlex (thanks RusAlex) like so:
$ yum install libicu-devel
I ran into a new problem which I also encountered locally the following command:
$ /usr/bin/pecl install intl
now produces this error:
/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
It appears to have something to do with PHP 5.3 being bundled with Intl already. But how can I enable this extension, if I look in my PHP Info than I cannot find any reference to it...
And you are good to go. And better enter the extension=intl.so manually to php.ini or even more elegant create a new .ini file in the /etc/php.d/ directory.
You are correct, you can't install the PECL package because as of PHP 5.3 Intl is part of PHP.
If you installed PHP using YUM, you can just pull down the intl package:
This worked for me on CentOS 5.6:
After that all errors to do with
intl
disappearedIt seems like you need to install
icu-dev
oricu-devel
package or something similar.You need development package.
/usr/bin/pecl install intl
Search log
checking for icu-config... /usr/bin/icu-config*
.You'll need a path of the directory which has
/bin/icu-config
later.Download 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/
compile and install intl module. phpize
./configure --enable-intl --with-icu-dir=/usr
make
make test
sudo make install
Finally, append
extension=intl.so
intophp.ini
.all you need is
do you have gcc, gcc-cpp, and gcc-c++ installed... At least that was one of my issues during install - http://itblogspot.net/php-install-intl
I had the same issue on CentOS, and I successfully installed INTL via pecl after:
1) install icu & libs:
2) php-devel package and phpize:
3) and, of course gcc:
(+1 to yuri for gcc, gcc-cpp, and gcc-c++ , sorry can't comment due to no rating )