Instalando / ativando a extensão PHP Pecl Intl no CentOs 5


8

Pergunta original:

Estou tendo problemas para instalar a extensão PHP Pecl Intl na minha máquina CentOs 5.

Após instalar ambos icue libicucom os seguintes comandos:

$ yum install icu
$ yum install libicu

Tentei instalar a extensão Intl da seguinte forma:

$ /usr/bin/pecl install intl

Selecionei procurar o local padrão para as bibliotecas da ICU e os arquivos de cabeçalho. Ele acaba travando assim:

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

atualizar

Após instalar com êxito a versão de desenvolvimento do icu, conforme sugerido por RusAlex (obrigado RusAlex), é o seguinte:

$ yum install libicu-devel

Encontrei um novo problema que também encontrei localmente o seguinte comando:

$ /usr/bin/pecl install intl

agora produz este erro:

 /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

Parece ter algo a ver com o PHP 5.3 já incluído no Intl. Mas como posso habilitar esta extensão, se eu procurar nas minhas informações do PHP, não consigo encontrar nenhuma referência a ela ...

Respostas:


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

E você está pronto para ir. E melhor inserir a extensão = intl.so manualmente no php.ini ou ainda mais elegante, crie um novo arquivo .ini no diretório /etc/php.d/.


Trabalhou para mim. Centos 5.8 x86_64 com CPanel.
Djskinner 02/10/12

para mim, na linha 3: sudo / usr / bin / pecl install intl diz 'comando não encontrado', estou faltando alguma coisa, por favor?
Dashrath


3

Isso funcionou para mim no CentOS 5.6:

yum install gcc gcc-cpp gcc-c++

Depois disso, todos os erros relacionados a intldesapareceram



1
  1. /usr/bin/pecl install intl

  2. Log de pesquisa checking for icu-config... /usr/bin/icu-config*.
    Você precisará de um caminho do diretório que possui /bin/icu-configposteriormente.

  3. Faça o download do 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 e instale o módulo intl. phpize

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

    make

    make test

    sudo make install

  5. Finalmente, acrescente extension=intl.soem php.ini.


1

Parece que você precisa instalar icu-devou icu-develempacotar ou algo semelhante.

Você precisa de um pacote de desenvolvimento.


Obrigado, isso me ajudou um pouco mais, atualizei a postagem de acordo. Apenas por uma questão de referência: o comando para instalar a versão de desenvolvimento que usei é$ yum install libicu-devel
Marijn Huizendveld


0

Eu tive o mesmo problema no CentOS e instalei com sucesso o INTL via pecl depois de:

1) instale o icu & libs:

yum -y install icu libicu libicu-devel 

2) pacote php-devel e phpize:

yum -y install php-devel phpize

3) e, claro, o gcc:

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

(+1 em yuri para gcc, gcc-cpp e gcc-c ++, desculpe, não posso comentar devido a nenhuma classificação)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.