Comment puis-je installer l'extension intl PHP dans PHP 7.1.7, qui est fournie avec osx high sierra?
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!
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!
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.
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
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.
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.
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.
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