Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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...

share|improve this question
add comment

7 Answers

seems like you need to install icu-dev or icu-devel package or something similar.

You need development package.

share|improve this answer
    
Thanks, I'll give this a shot right away! –  Marijn Huizendveld Dec 9 '10 at 17:34
    
Thanks, that got me a little further, I've updated the post accordingly. Just for the sake of reference: the command to install the development version I used is $ yum install libicu-devel –  Marijn Huizendveld Dec 9 '10 at 17:47
add comment

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

share|improve this answer
add comment

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:

> yum list php*intl
> yum install <file_from_above>
share|improve this answer
add comment
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

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.

share|improve this answer
    
Worked for me. Centos 5.8 x86_64 with CPanel. –  Daniel Skinner Oct 2 '12 at 16:24
add comment

This worked for me on Centos 5.6

yum install gcc gcc-cpp gcc-c++ After that all errors to do with intl disappeared

share|improve this answer
add comment
  1. /usr/bin/pecl install intl

  2. Search log checking for icu-config... /usr/bin/icu-config*.
    You'll need a path of the directory which has /bin/icu-config later.

  3. 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/

  4. compile and install intl module. phpize

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

    make

    make test

    sudo make install

  5. Finally, append extension=intl.so into php.ini.

share|improve this answer
add comment

all you need is

yum install libicu-devel
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.