web-dev-qa-db-fra.com

Impossible d'installer l'extension php Intl sur MacosX

Je suis ce link pour installer cette extension PHP mais je suis coincé au milieu.
Lorsque j'essaie d'exécuter cette commande pecl install intl, le message suivant s'affiche:

Specify where ICU libraries and headers can be found [DEFAULT] :

Et je ne sais pas où se trouvent les bibliothèques ICU.
Si j'appuie sur Entrée, j'obtiens cette erreur:

configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
ERROR: `/private/tmp/pear/install/intl/configure --with-php-config=/usr/bin/php-config --with-icu-dir=DEFAULT' failed

Comment localiser le chemin correct des bibliothèques ICU?? J'utilise High Sierra et MAMP avec PHP version 7.1

6
SlimenTN

ICU signifie ICU - Composants internationaux pour Unicode

Installez-le avec de la bière

brew update
brew search icu # returns 'icu4c'
brew install icu4c

OR

Installez-le avec pecl

Sudo pecl update-channels
Sudo pecl install intl

installation du package intl sur osx

1
Cedric

EDIT: après un meilleur regard dans [email protected] il semble qu'il est déjà compilé avec 'intl'

php -i | grep intl
... '--enable-intl' ...

Donc, ma réponse est normalement inutile pour [email protected] (mais peut être utile dans certains cas, je suppose)


Je suis confronté au même problème aujourd'hui en essayant de passer de php56 à [email protected].

Après beaucoup de recherches, voici la solution de contournement.

Assurez-vous d'avoir une nouvelle installation de [email protected] et de l'avoir à la version actuelle

php -v
PHP 5.6.35 (cli) (built: Mar 31 2018 20:21:31)

Assurez-vous également d'avoir icu4c

brew update
brew install icu4c

Ensuite, nous installerons et compilerons intl manuellement

cd /usr/local/src/
wget https://pecl.php.net/get/intl-3.0.0.tg
tar zxf intl-3.0.0.tgz
cd intl-3.0.0/
phpize --clean
phpize
./configure    

Et voici le truc, éditez Makefile

vi Makefile

Modifiez la ligne CXXFLAGS comme suit

CXXFLAGS = -g -O2 -std=c++11

ET la ligne CPPFLAGS comme suit

CPPFLAGS = -DHAVE_CONFIG_H -DU_USING_ICU_NAMESPACE=1

Ensuite, sauvegardez et compilez

make
make install

Et le tour est joué

Installing shared extensions:     /usr/local/Cellar/[email protected]/5.6.35/pecl/20131226/

N'oubliez pas d'ajouter extension="intl.so" à votre php.ini

vi /usr/local/etc/php/5.6/php.ini

(et pour redémarrer Apache)

Sources:

0
Cédric