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.
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)
/xampp/php/php.ini
;extension=php_intl.dll
par extension=php_intl.dll
(supprimez le point-virgule)./xamp/php/ic*.dll
dans /xampp/Apache/bin
Solution Linux (merci à Annamalai Somasundaram)
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.
Redémarrez Apache Sudo service Apache2 restart
Solution Mac/OSX (homebrew) (merci à deizel)
brew install php56-intl
No available formula for php56-intl
, suivez ces instructions.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.
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
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
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-intl
OUSudo 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
Réponse courte: activez l'extension intl dans php_cli.ini. Merci à @ndm pour sa contribution.
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 .
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.
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
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
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
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
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
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
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.
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.