2
votes

Comment activer l'extension PHP Intl sur macOS Mojave?

J'essaye d'installer Magento (2.3.0) sur macOS Mojave. Magento montre que PHP Extension intl. est manquant.

J'ai essayé ce qui suit pour résoudre:

  1. Création d'une copie de php.ini en utilisant cp /etc/php.ini.default php.ini
  2. Supprimé ";" avant extension = php_intl.dll
  3. Redémarrez Apache sudo apachectl restart

Mais ce qui précède n'a pas résolu.

En vérifiant php -v , je vois l'erreur ci-dessous:

PHP Warning:  PHP Startup: Unable to load dynamic library 
'/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll' - 
dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll, 
0x0009): dlopen(): file not found: /usr/lib/php/extensions/no-debug- 
non-zts-20160303/php_intl.dll in Unknown on line 0
PHP 7.1.19 (cli) (built: Aug 17 2018 20:10:18) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

Il n'y a que 2 fichiers sous / usr / lib / php / extensions / no-debug-non-zts-20160303 à savoir opache.so et xdebug.so

Comment puis-je installer ou activer "PHP Extension intl" sur mon macOS Mojave?


3 commentaires

extension = php_intl.dll doit être extension = php_intl.so , car ce n'est pas Windows.


Merci. J'ai essayé cela, mais même problème al-OSX: sbin konathal $ php -i | grep intl Avertissement PHP: Démarrage PHP: Impossible de charger la bibliothèque dynamique '/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.‌ so' - dlopen (/ usr / lib / php / extensions / no-debug-non-zts-20160303 / php‌ _intl.so, 0x0009): dlopen (): fichier introuvable: /usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.s‌ O en Inconnu sur la ligne 0


Copie possible de Installer l'extension PHP intl OSX High Sierra


4 Réponses :


4
votes

Voici une solution qui a fonctionné pour moi:

  1. Trouver toutes les versions de PHP installées liste de brassage | grep php
  2. Supprimez toutes les versions de PHP brew remove --ignore-dependencies --force php70 php71 php72 (en fonction de ce que vous voyez ci-dessus)
  3. Installer PHP brew install php72 (j'ai choisi 7.2, 7.3 n'est pas encore pris en charge par plusieurs fournisseurs)
  4. Exécutez la commande quel php devrait vous montrer le chemin vers le PHP installé. Copiez le chemin.
  5. Mettez à jour votre bash_profile vi ~ / .bash_profile et ajoutez cette ligne au fichier: export PATH = / usr / local / php5 / bin: $ PATH
  6. Enregistrez et exécutez cette source ~ / .bash_profile
  7. Vérifiez si PHP Intl Extension est installé en utilisant php -m | grep intl . Si l'installation s'est bien déroulée, nous verrons intl répertorié. Sinon, l'extension n'est pas installée.

Je pense qu'à partir de PHP 7 (pas sûr de la version), les extensions sont disponibles par défaut et nous n'avons pas besoin de les activer explicitement dans le fichier php.ini .


1 commentaires

Réponse utile, mais je ne pense pas que l'ajout de export PATH = / usr / local / php5 / bin: $ PATH dans .bash_profile est nécessaire? J'ai installé PHP avec brew et il n'y a pas de répertoire / usr / local / php5 sur ma machine.



-1
votes

J'ai obtenu l'aide du lien et j'ai pu compiler https: // donatstudios.com/Install-PHP-Mcrypt-Extension-in-OS-X

Ensuite, nous allons télécharger la source PHP. Vérifiez la version exacte de PHP que vous utilisez. Cela peut être récupéré comme suit. La version est en surbrillance.

$ php --version
PHP 7.1.19 (cli) (built: Aug 17 2018 18:03:17) ( NTS )
Copyright (c) 1997-2018 The PHP Group

Now we move into a working directory and download the source making sure to update the following for the version from above.


$ cd /tmp
$ curl -L http://php.net/get/php-{{php-version}}.tar.bz2/from/this/mirror > php.tar.bz2
$ open php.tar.bz2

Now we will compile and test the extension.

$ cd php-{{php-version}}/ext/{{extension}}
$ phpize
$ ./configure
$ make
$ make test
$ sudo make install

If all that goes well finally we'll need to add the following to our php.ini - I usually add at it at the end of the file.

extension = {{extension}}
.so
You can verify your installation with the following:

$ php --info | grep {{extension}}\\.

Lastly, depending on your setup now you may want to restart apache.

$ sudo apachectl restart


0 commentaires

1
votes

Si vous avez installé le php de Homebrew, le lier à un répertoire dans votre chemin résoudra le problème. lien de brassage --force php@7.3 J'ai eu le même problème et cela l'a résolu. Voici un lien où j'ai obtenu une réponse détaillée de


0 commentaires

-1
votes

Le module PHP 7.x déjà inclus PHP-Intl, veuillez installer PHP via homebrew.

  1. Installer brew install php
  2. Ouvrez vi ~ / .bash_profile ou vi ~ / .zshrc et placez la ligne dans le fichier /usr/local/Cellar/php@7.2 /7.2.22_1/bin .
  3. Charger le script source ~ / .bash_profile ou source ~ / .zshrc

L'exemple ci-dessus, j'utilise PHP version 7.2. Si vous utilisez une autre version de PHP, changez le répertoire PHP dans le répertoire Cellar.

  1. Vérifiez la version PHP php -v , assurez-vous que la version affichée est la même que celle que vous avez installée.
  2. Vérifiez les modules php -m ou php -m | grep intl

C'est fait!


0 commentaires