Installation de CakePHP 3.0: extension intl manquante du système

En utilisant les documents de CakePHP, j’essaie d’installer 3.0-beta2 en utilisant composer mais j’ai cette erreur:

cakephp/cakephp 3.0.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system

Cependant, je sais avec certitude que intl est installé (cela apparaît sur phpinfo). J’utilise PHP 5.4.33 / Apache 2.4.10.1

Merci d’avance pour toutes les idées que vous pouvez fournir.

J’ai rencontré le même problème aujourd’hui. Vous devez activer l’extension PHP intl dans votre configuration PHP ( .ini ).

Solution Xampp (Windows)

  1. Ouvrez /xampp/php/php.ini
  2. Modifier ;extension=php_intl.dll en extension=php_intl.dll (supprimer le point-virgule)
  3. Copiez tous les fichiers /xamp/php/ic*.dll dans /xampp/apache/bin
  4. Redémarrez apache dans le panneau de configuration Xampp

Solution Linux (merci à Annamalai Somasundaram)

  1. Installez l’extension php5-intl sudo apt-get install php5-intl

    1.1. Sinon, utilisez sudo yum install php5-intl si vous êtes sur CentOS ou Fedora.

  2. Redémarrez apache sudo service apache2 restart

Solution Mac / OSX (homebrew) (grâce à deizel)

  1. Installez le fichier d’extension brew install php56-intl
  2. Si vous obtenez No available formula for php56-intl suivez ces instructions.
  3. Redémarrez apache sudo apachectl restart

Finalement, vous pouvez exécuter l’ composer install pour vérifier si cela fonctionne. Cela donnera une erreur si ce n’est pas le cas.

J’ai rencontré le même problème dans Ubuntu 12.04

Installé: sudo apt-get install php5-intl

Redémarrez Apache: sudo service apache2 restart

OS X Homebrew (mai 2015):

L’extension intl a été supprimée des principales formules php5x , vous ne comstackz donc plus avec l’ --enable-intl .

Si vous ne trouvez pas le nouveau package:

 $ brew install php56-intl Error: No available formula for php56-intl 

Suivez ces instructions: https://github.com/Homebrew/homebrew-php/issues/1701

 $ brew install php56-intl ==> Installing php56-intl from homebrew/homebrew-php 

Lors de l’utilisation de MAMP

1 aller au terminal

 vim ~/.bash_profile i export PATH=/Applications/MAMP/bin/php/php5.6.2/bin:$PATH 

Changer php5.6.2 à la version php que vous utilisez avec MAMP

Hit ESC, tapez :wq , appuyez sur Entrée

 source ~/.bash_profile 

quel php

2 Installez les ports Mac

https://www.macports.org/install.php

sudo port install php5-intl sudo port install php53-intl

 cp /opt/local/lib/php/extensions/no-debug-non-zts-20090626/intl.so /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/ {take a good look at the folder names that u use the right ones} 

3 Ajouter une extension

Ajoutez maintenant l’extension à votre fichier php.ini :

 extension=intl.so 

Lien utile: https://gist.github.com/irazasyed/5987693

Réponse courte: activer l’extension intl dans php_cli.ini. Merci à @ndm pour sa consortingbution.

Pour le terminal Ubuntu:

Veuillez suivre les étapes:

Étape 1:

cd ~

Étape -2: Exécuter les commandes suivantes

sudo apt-get installer php5-intl

Étape 3: vous devez ensuite redémarrer Apache

sudo service apache2 redémarrer


Pour Windows (XAMPP):

Recherchez le fichier Php.ini:

/xampp/php/php.ini

Mettez à jour le fichier php.ini avec remove (;) semi-colon comme mentionné ci-dessous:

; extension = php_intl.dll à extension = php_intl.dll

et enregistrez le fichier php.ini.

Après cela, vous devez

Redémarrez le xampp en utilisant le contrôle xampp .

Le message d’erreur indique clairement le problème. Vous avez besoin de l’extension intl installée.

Étape 1: installez PHP intl vous version confortable

$ sudo apt-get install php-intl

étape 2:

Pour que l’extension de serveur XAMPP Server soit déjà installée, vous devez activer cette extension pour supprimer le commentaire sous la ligne dans votre fichier php.ini. Le fichier Php.ini se trouve dans c: \ xampp \ php \ php.ini ou vous avez installé XAMPP.

Avant de décommenter:

; extension = php_intl.dll; extension = php_mbssortingng.dll

Après avoir décommenté:

extension = extension php_intl.dll = php_mbssortingng.dll

Dans mon cas, ma version php en cours d’exécution est 7.1.x sur Mac OSX . J’ai installé la commande intl en utilisant brew install php71-intl . Placer extension = intl.so dans php.ini était sans effet. Finalement, j’ai cherché le répertoire d’extension installé et j’ai vu intl.so et placé ce chemin (extension = / usr / local / Cellar / php71-intl / 7.1.11_20 / intl.so) dans mon fichier php.ini et il a résolu mon problème. problème.

Faites ceci

Dans XAMPP, l’extension intl est incluse, mais vous devez décommenter extension = php_intl.dll dans php.ini et redémarrer le serveur via le panneau de configuration XAMPP. Dans WAMP, l’extension intl est “activée” par défaut mais ne fonctionne pas. Pour que cela fonctionne, vous devez aller dans le dossier php (par défaut) C: \ wamp \ bin \ php \ php {version}, copiez tous les fichiers qui ressemblent à icu * .dll et collez-les dans le répertoire apache bin C: \ wamp \ bin \ apache \ apache {version} \ bin. Puis redémarrez tous les services et ça devrait aller.

Si vous utilisez XAMPP, faites ceci: désactivez XAMPP 2. Modifié, le fichier php.ini se trouve dans c /: xampp / php / php.ini 3. L’extension intl est incluse mais vous devez décommenter extension = php_intl.dll dans php. ini et redémarrer le serveur via le panneau de configuration XAMPP.

En ce qui me concerne, je n’essayais pas vraiment d’exécuter Cakephp localement, j’essayais simplement de le mettre automatiquement à jour localement en utilisant composer (parce que je joue avec les plugins d’écriture que vous installez avec composer). Comme je ne l’exécute même pas localement, je pourrais simplement ignorer les exigences en ajoutant l’indicateur –ignore-platform-reqs.

php composer.phar update --ignore-platform-reqs

Intl Means: extension pour l’internationalisation qui permet aux programmeurs d’effectuer un classement et un numéro, une devise, une date et une heure conformes à l’UCA dans les scripts PHP.

Pour activer PHP Intl avec PECL peut être utilisé.

 pecl install intl 

Sur un RHEL / CentOS / Fedora simple, PHP Intl peut être installé en utilisant yum

 yum install php-intl 

Sur Ubuntu, PHP Intl peut être installé avec apt-get

  apt-get install php5-intl 

Redémarrez le service Apache pour que les modifications prennent effet.

C’est tout

Pour ceux qui ont une erreur Package not found , essayez sudo apt-get install php7-intl puis lancez le composer install dans votre répertoire de projet.

J’ai eu le même problème dans Windows L’erreur était que j’avais installé plusieurs versions de PHP et les variables d’environnement routaient vers le mauvais chemin de php voir exemple d’image

J’utilise Mac OS High Sierra et rien de tout cela n’a fonctionné pour moi. Mais après avoir beaucoup cherché, j’en ai trouvé un qui fonctionnait!

Cela peut sembler sortingvial, mais en fait, il y a environ 2 mois, certains types intelligents ont apporté des modifications au repository de brew install php71-intl que: brew install php71-intl affichera une erreur avec un message indiquant que cette recette n’existe pas.

Heureusement, il y en a. Il y a un correctif temporaire dans un autre repo d’infusion, il vous suffit donc de:

 brew tap kyslik/homebrew-php brew install kyslik/php/php71-intl 

SOURCE: http://blastar.biz/2018/04/14/how-to-enable-php-intl-extension-for-php-7-1-using-xampp-on-macos-high-sierra/