web-dev-qa-db-fra.com

Compositeur: Le demandé PHP l'extension ext-intl * est absente de votre système

J'essaie d'utiliser le fichier composer.json. mais, lorsque j'essaie d'exécuter la commande 'composer install' dans mon path/project/, j'obtiens une erreur:

enter image description here

J'ai déjà configuré ma wamp pour 'extension=php_intl.dll' et copié tout icu*.dll dans 'D:\wamp\bin\Apache\apache2.2.22\bin' à partir de 'D:\wamp\bin\php\php5.3.13' et s'affiche dans phpinfo():

enter image description here

sans copie icu*.dll fonctionne également et s'affiche dans phpinfo();

Faites-moi savoir si j'aiintlinstall sur monwampetcomposer installsur mon ordinateur, alors pourquoi cette erreur se produit-elle? vraiment, c'est tellement énervant.

Voici mes coordonnées:

  1. OS: Windows 7 (64)
  2. PHP: 5.3.13
  3. Apache: 2.2.22
  4. Compositeur: installé par fichier exécutable
  5. Poire: installée (dernière)
  6. PHPUnit: installé (dernier)

Moncomposer.jsonest comme ci-dessous:

{
    "name" : "sebastian/money",
    "description" : "Value Object that represents a monetary value (using a currency's smallest unit)",
    "keywords" : ["money"],
    "homepage" : "http://www.github.com/sebastianbergmann/money",
    "license" : "BSD-3-Clause",
    "authors" : [{
            "name" : "Sebastian Bergmann",
            "email" : "[email protected]"
        }
    ],
    "require" : {
        "php" : ">=5.3.3",
        "ext-intl" : "*"
    },
    "require-dev" : {
        "phpunit/phpunit" : "~4.0"
    },
    "autoload" : {
        "classmap" : [
            "src/"
        ]
    },
    "extra" : {
        "branch-alias" : {
            "dev-master" : "1.3.x-dev"
        }
    }
}

Faites-moi savoir si d'autres détails sont requis ..

Toute rétroaction/aide serait très appréciée. 

24
Neeraj Singh

Le problème avec wamp est qu’il utilise un php.ini différent pour le php en ligne de commande que pour le php web/Apache. Donc, vous voyez l'extension intl dans phpinfo () dans le navigateur, mais si vous exécutez php -m en ligne de commande, vous devriez voir que la liste des extensions n'inclut pas intl.

Vous pouvez vérifier en utilisant php -i au-dessus de la sortie, il devrait vous indiquer d'où le fichier ini est chargé. Assurez-vous d'activer l'extension intl dans ce fichier ini et vous devriez être prêt à partir.

26
Seldaek

Je l'ai rencontré en l'utilisant sur Mac, résolu en utilisant l'option --ignore-platform-reqs.

composer install --ignore-platform-reqs
16
Sky

Pour activer l'extension intl, suivez les instructions ci-dessous.

Vous devez activer l'extension en supprimant la mise en commentaire de la ligne suivante = php_intl.dll dans le fichier C:\xampp\php\php.ini . Une fois que vous avez supprimé le commentaire de l'extension = php_intl.dll, vous devez redémarrer le serveur Apache à l'aide du panneau de configuration XAMPP.

//about line 998
;extension=php_intl.dll 
change as
extension=php_intl.dll

(Remarque: le fichier php.ini principalement dans le répertoire suivant C:\xampp\php)

Redémarrer xampp

9
matinict

Sous Linux (Debian Jessie par exemple):

apt-get install php7.0-intl

fera le travail pour vous créer créera un lien simbolique à lui.

5
Anibal Marques dev

Si vous rencontrez cette erreur lors de l'exécution de la commande composer composer,

  • Étape 1: Accédez au dossier du serveur tel que xampp (ou) wampp etc.
  • Étape 2: ouvrez le dossier php à l'intérieur et allez dans le dossier ext.
  • Etape 3: Si vous trouvez un fichier nommé comme php_intl.dll aucun problème.

Allez juste au fichier php.ini et décommentez la ligne

De:

;extension=php_intl.dll

À:

extension=php_intl.dll
  • Étape 4: redémarrez xampp, c'est tout

Remarque: Si vous ne trouvez aucun des fichiers nommés php_intl.dll, vous devez ensuite mettre à niveau la version PHP.

0
Manojkiran.A

(avec le serveur xampp) ouvrez php.ini dans ".\xampp\php"

changer; extension = intlenextension = intl 

0
huu duy

C'est une question un peu ancienne mais j'avais rencontré le même problème sur le serveur de base Linux lors de l'installation de magento 2.

Lorsque je lance la commande composer update ou composer install à partir de mon répertoire racine magento. Son tirait en dessous de l'erreur.

Problem 1
    - The requested PHP extension ext-intl * is missing from your system. Install or enable PHP's intl extension.
  Problem 2
    - The requested PHP extension ext-mbstring * is missing from your system. Install or enable PHP's mbstring extension.
  Problem 3
    - Installation request for pelago/emogrifier 0.1.1 -> satisfiable by pelago/emogrifier[v0.1.1].
    - pelago/emogrifier v0.1.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
   ...

Ensuite, j'ai recherché les extensions intl et intl disponibles, en utilisant les commandes ci-dessous.

yum list php*intl
yum install php-intl.x86_64  

yum list php*mbstring
yum install php-mbstring.x86_64

Et cela a résolu le problème.

0
Rohan Patil

Décommentez simplement cette ligne (pour la trouver, cherchez simplement cette ligne dans l'éditeur):

;extension=php_sockets.dll

(Supprimer le point-virgule pour dégager le commentaire)

Pour moi, pas besoin de redémarrer XAMPP (dans votre cas, WAMP). Mais si cela n'a pas fonctionné, redémarrez-le.

0
MAChitgarha