Installation / activation de l'extension PHP Pecl Intl sur CentOs 5


8

Question d'origine:

J'ai du mal à installer l'extension PHP Pecl Intl sur ma machine CentOs 5.

Après avoir installé les deux icuet libicuavec les commandes suivantes:

$ yum install icu
$ yum install libicu

J'ai essayé d'installer l'extension Intl comme suit:

$ /usr/bin/pecl install intl

J'ai choisi de rechercher l'emplacement par défaut pour les bibliothèques ICU et les fichiers d'en-tête. Il finit par s'écraser comme ceci:

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

mise à jour

Après avoir installé avec succès la version de développement d'icu comme suggéré par RusAlex (merci RusAlex) comme ceci:

$ yum install libicu-devel

J'ai rencontré un nouveau problème que j'ai également rencontré localement la commande suivante:

$ /usr/bin/pecl install intl

produit maintenant cette erreur:

 /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

Cela semble avoir quelque chose à voir avec PHP 5.3 déjà intégré à Intl. Mais comment puis-je activer cette extension, si je regarde dans mes informations PHP, je ne trouve aucune référence à elle ...

Réponses:


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

Et vous êtes prêt à partir. Et mieux entrez manuellement l'extension = intl.so dans php.ini ou encore plus élégant créez un nouveau fichier .ini dans le répertoire /etc/php.d/.


A travaillé pour moi. Centos 5.8 x86_64 avec CPanel.
djskinner

pour moi, sur la ligne 3: sudo / usr / bin / pecl install intl il dit 'commande introuvable', est-ce que je manque quelque chose s'il vous plait?
Dashrath

7

Vous avez raison, vous ne pouvez pas installer le package PECL car depuis PHP 5.3 Intl fait partie de PHP .

Si vous avez installé PHP en utilisant YUM, vous pouvez simplement dérouler le package intl:

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

3

Cela a fonctionné pour moi sur CentOS 5.6:

yum install gcc gcc-cpp gcc-c++

Après cela, toutes les erreurs liées à la intldisparition ont disparu



1
  1. /usr/bin/pecl install intl

  2. Journal de recherche checking for icu-config... /usr/bin/icu-config*.
    Vous aurez besoin d'un chemin du répertoire qui a /bin/icu-configplus tard.

  3. Télécharger 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. compiler et installer le module intl. phpize

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

    make

    make test

    sudo make install

  5. Greffer extension=intl.sodans php.ini.


1

Il semble que vous deviez installer icu-devou icu-develempaqueter ou quelque chose de similaire.

Vous avez besoin d'un package de développement.


Merci, cela m'a poussé un peu plus loin, j'ai mis à jour le message en conséquence. Juste pour référence: la commande pour installer la version de développement que j'ai utilisée est$ yum install libicu-devel
Marijn Huizendveld


0

J'ai eu le même problème sur CentOS, et j'ai réussi à installer INTL via pecl après:

1) installez icu & libs:

yum -y install icu libicu libicu-devel 

2) paquet php-devel et phpize:

yum -y install php-devel phpize

3) et, bien sûr, gcc:

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

(+1 à yuri pour gcc, gcc-cpp et gcc-c ++, désolé ne peut pas commenter en raison d'aucune évaluation)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.