web-dev-qa-db-fra.com

Installer intl PHP extension OSX High Sierra

Comment puis-je installer l'extension intl PHP dans PHP 7.1.7, qui est fournie avec osx high sierra?

17
Mondy

J'ai donc eu exactement le même problème. Comme l'ont noté d'autres personnes commentant ici, High Sierra est livré avec PHP 7.1 installé et cette version de PHP est compilée avec intl

Dans mon cas, j'ai suivi une partie des commentaires de Neodork dans le problème suivant: Valet + :

"Installer" PHP 7.1 (donc ça vient de brew lui-même, pas de celui installé par High Sierra)

brew install [email protected]

Mettre à niveau vers la dernière version

brew upgrade [email protected]

Liens symboliques pour les références dans la cave:

brew link --overwrite --force [email protected]

Changer le chemin PHP dans mon profil bash

echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.bash_profile

Rechargez votre profil bash (vous pouvez fermer le terminal et l'ouvrir à nouveau)

. ~/.bash_profile

Vérifier pour Intl

php -m | grep intl

Note: Si vous rencontrez des avertissements tels que:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-intl/intl.so'

Ensuite, vous devez désactiver le précédent intl:

mv /usr/local/etc/php/7.1/conf.d/ext-intl.ini /usr/local/etc/php/7.1/conf.d/ext-intl.ini.disabled

J'espère que ça aide!

30
Steven667

ouvrez un terminal puis tapez:

brew search intl

vous devriez pouvoir voir php71-intl, puis lancer

brew install homebrew/php/php71-intl

puis redémarrez Apache

Sudo apachectl restart

puis tapez:

php -i | grep intl

vous devriez pouvoir voir quelque chose comme ça:

Additional .ini files parsed => /usr/local/etc/php/7.1/conf.d/ext-intl.ini
intl
intl.default_locale => no value => no value
intl.error_level => 0 => 0
intl.use_exceptions => 0 => 0

Prendre plaisir!

10
Mhyk Manasan

Après l'intégration de brew/php à brew/core, l'extension intl est incluse par l'installation par défaut. J'ai également eu le même problème l'extension intl ne fonctionnait pas. Le problème que j'avais était que l'environnement de ligne de commande n'utilisait pas la version installée de PHP mais la version par défaut du système macOS. 

Pour activer la version installée, vous devez procéder comme suit:

Après brew install [email protected]

Vous devez lier la version PHP installée par brew link [email protected]

Ensuite, vous devez OUVRIR UN NOUVEAU TERMINAL pour le rendre efficace.
Puis revérifiez le chemin binaire PHP, which php

assurez-vous que c'est /usr/local/bin/php au lieu de /usr/bin/php

Puis vérifiez si l’extension intl est activée, php -m | grep intl

Ça marche pour moi.

7
jallen0927

En plus de ce que L. Grolleau dit (run brew install php71-intl), collez le chemin int.so au /php.ini à la fin du fichier:

extension=/usr/local/Cellar/php71-intl/7.1.11_20/intl.so
4
Gustavo A Garcia

J'utilise la version 1.6.2, sur l'OS High Sierra. L'extension intl n'est pas encore disponible dans les emballages brasseurs.

La solution @Mondy a bien fonctionné pour moi. Après avoir exécuté le 

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

Les packages seront disponibles dans/usr/local/php5 ou /usr/local/php5-7.0.27-20180201-135220.

Donc, dans votre /usr/local/etc/php/7.0/php.ini, vous pouvez placer les lignes suivantes pour activer l’extension intl:

[intl]
extension="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20151012/intl.so"

Dans mon cas, j'ai préféré créer un fichier 'ext-intl.ini' dans /usr/local/etc/php/7.0/conf.d/, juste pour une meilleure organisation.

3
Lipdk

Je trouve une solution.

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

Ensuite, j'ai copié intl.so de l'installation dans mon répertoire d'extension, qui est défini dans mon php.ini.

2
Mondy

J'ai réussi à résoudre ce problème.

Tout d'abord, désinstallez tous les paquets php que vous avez complètement avec brew, puis exécutez les commandes brew update et brew doctor.

Maintenant, installez avec brew install [email protected] (changez la version si nécessaire) intl est inclus dans la construction de toutes les formules php.

Pour confirmer que cela fonctionne, exécutez php -m | grep intl. Vous verrez que l'extension intl est incluse. Sinon, vérifiez le fichier php.ini et assurez-vous que l'extension est en cours de chargement.

1
Lindsay

Supprimez le fichier suivant avec 

rm /usr/local/etc/php/7.1/conf.d/ext-intl.ini

Travaillé pour moi, grâce à homebrew-core Issue

0
Nicolas