web-dev-qa-db-fra.com

Installation de CakePHP 3.0: L'extension intl est absente du système

En utilisant les docs CakePHP, j'essaye d'installer 3.0-beta2 en utilisant composer mais j'ai eu cette erreur:

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

Cependant, je sais pour sûr que intl est installé (il 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.

59
Juan Carlos

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

Solution Xampp (Windows)

  1. Ouvrez /xampp/php/php.ini
  2. Remplacez ;extension=php_intl.dll par extension=php_intl.dll (supprimez 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 de Xampp.

Solution Linux (merci à Annamalai Somasundaram)

  1. Installer l'extension php5-intl Sudo apt-get install php5-intl

    1.1. Vous pouvez également utiliser Sudo yum install php5-intl si vous utilisez CentOS ou Fedora.

  2. Redémarrez Apache Sudo service Apache2 restart

Solution Mac/OSX (homebrew) (merci à deizel)

  1. Installer l'extension php5-intl brew install php56-intl
  2. Si vous obtenez No available formula for php56-intl, suivez ces instructions.
  3. Redémarrez Apache Sudo apachectl restart

Vous pouvez éventuellement exécuter composer install pour vérifier son fonctionnement. Si tel n'est pas le cas, une erreur se produira.

108
Tijme

J'ai fait face au même problème dans Ubuntu 12.04

Installé: Sudo apt-get install php5-intl

Redémarrage du Apache: Sudo service Apache2 restart

14
AnNaMaLaI

OS X Homebrew (mai 2015):

L'extension intl a été supprimée des formules php5x principales. Vous ne compilez donc plus avec l'indicateur --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
8
deizel

Lorsque vous utilisez MAMP

1 Aller au terminal

vim ~/.bash_profile

i

export PATH=/Applications/MAMP/bin/php/php5.6.2/bin:$PATH

Changez php5.6.2 en la version php que vous utilisez avec MAMP

Appuyez sur Échap, Tapez :wq, Appuyez sur Entrée.

source ~/.bash_profile

quel php

2 Installer les ports Mac

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

Sudo port install php5-intlOUSudo 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

Maintenant, ajoutez l’extension à votre fichier php.ini:

extension=intl.so

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

7
Gilko

Réponse courte: activez l'extension intl dans php_cli.ini. Merci à @ndm pour sa contribution.

2
Juan Carlos

Pour le terminal Ubuntu:

S'il vous plaît suivez les étapes:

Étape 1:  

cd ~

Étape -2: Exécutez les commandes suivantes

Sudo apt-get install php5-intl

Etape -3: Vous devez ensuite redémarrer Apache.

Service Sudo Apache2 redémarrer


Pour Windows (XAMPP):

Recherchez le fichier Php.ini:

/xampp/php/php.ini

Mettez à jour le fichier php.ini avec remove (;) point-virgule comme indiqué ci-dessous:

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

et enregistrez le fichier php.ini.

Après cela, vous devez 

Redémarrez xampp avec xampp control .

1
kamlesh

Dans mon cas, ma version courante de php est 7.1.x sur mac OSX . J'ai installé intl command en utilisant brew install php71-intl . Placement extension = intl. donc à l'intérieur php.ini n'a eu aucun effet. Enfin, j'ai cherché l'extension du répertoire installé et j'ai vu intl.so et placé ce chemin (extension =/usr/local/Cellar/php71-intl/7.1.11_20/intl.so) à mon php. ini file et cela a résolu mon problème.

1
sh6210

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

Étape 1: installez PHP intl votre version confortable

$ Sudo apt-get install php-intl

étape 2:

Pour que l'extension XAMPP Server intl soit déjà installée, vous devez l'activer pour qu'elle ne commente pas sous la ligne de votre fichier php.ini. Le fichier Php.ini se trouve à l'emplacement c:\xampp\php\php.ini ou sur lequel vous avez installé XAMPP.

Avant de commenter:

; extension = php_intl.dll; extension = php_mbstring.dll

Après avoir commenté:

extension = php_intl.dll extension = php_mbstring.dll

1
venkatSkpi

Dans mon cas, je n'essayais pas réellement d'exécuter cakephp localement, j'essayais simplement de le mettre à jour automatiquement à l'aide de composer (car je joue avec des 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

1
Richard Kersey

Si vous utilisez la dernière version Ubuntu 16.04 ou une version ultérieure, faites simplement 

Sudo apt-get install php-intl

Puis redémarrez votre Apache

Sudo service Apache2 restart
0
Bijaya Kumar Oli

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 anodin, mais en fait, il y a environ 2 mois, certains types intelligents ont apporté des modifications au référentiel de brassage. Il suffit donc de: brew install php71-intl pour afficher un message d'erreur indiquant que cette recette n'existe pas. 

Heureusement, il y en a. Il existe une solution temporaire dans un autre dépôt de bière, vous devez donc:

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/

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

0
Jamez

Intl signifie: extension d'internationalisation qui permet aux programmeurs d'effectuer un classement conforme au format UCA ainsi qu'un formatage du nombre, de la devise, de la date et de l'heure dans des scripts PHP.

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

pecl install intl

Sur un RHEL/CentOS/Fedora, l’installation de PHP Intl peut être effectuée à l’aide de 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

0
raju gupta

Faire cela

Dans XAMPP, l'extension intl est incluse, mais vous devez supprimer le commentaire de l'extension = php_intl.dll dans le fichier 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}, copier tous les fichiers qui ressemblent à icu * .dll et les coller dans le répertoire bin Apache C:\wamp\bin\Apache\apache {version}\bin. Puis redémarrez tous les services et tout devrait bien se passer.

si vous utilisez XAMPP, faites ceci 1. désactiver XAMPP 2. Modifié le php.ini est situé dans c /: xampp/php/php.ini 3. L'extension intl est incluse, mais vous devez retirer le commentaire de l'extension = php_intl.dll dans le fichier php.ini et redémarrer le serveur via le panneau de configuration XAMPP.

0
Swastika

Pour ceux qui reçoivent l'erreur Package not found, essayez Sudo apt-get install php7-intl, puis exécutez composer install dans le répertoire de votre projet.

0
Kunok