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