Composer php 编写器:系统中缺少请求的PHP扩展插件ext intl*

Composer php 编写器:系统中缺少请求的PHP扩展插件ext intl*,composer-php,Composer Php,我正在尝试使用composer.json文件。但是,当我试图在我的路径/project/中运行命令“composer install”时,我收到一个错误: 我已经为“extension=php\u intl.dll”配置了我的wamp,并从“D:\wamp\bin\apache\apache2.2.22\bin”复制了所有icu*.dll”中的D:\wamp\bin\php\php5.3.13”中的,它显示在phpinfo(): 不复制icu*.dll也可以工作并显示在phpinfo()中

我正在尝试使用
composer.json
文件。但是,当我试图在我的
路径/project/
中运行命令“
composer install
”时,我收到一个错误:

我已经为“
extension=php\u intl.dll
”配置了我的
wamp
,并从“
D:\wamp\bin\apache\apache2.2.22\bin
”复制了所有
icu*.dll
”中的
D:\wamp\bin\php\php5.3.13
”中的
,它显示在
phpinfo()

不复制
icu*.dll
也可以工作并显示在
phpinfo()

请告诉我,如果我的
安装在我的
wamp
composer安装在我的电脑上,那么我为什么会收到此错误。真的,太烦人了

以下是我的详细资料:

  • 操作系统:windows 7(64)
  • PHP:5.3.13
  • Apache:2.2.22
  • 编写器:通过可执行文件安装
  • Pear:已安装(最新)
  • PHPUnit:已安装(最新)
  • 我的
    composer.json
    如下所示:

    {
        "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" : "sebastian@phpunit.de"
            }
        ],
        "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"
            }
        }
    }
    
    如果需要任何其他细节,请告诉我


    如有任何反馈/帮助,将不胜感激

    PHP对命令行PHP使用与web/apache PHP不同的PHP.ini。因此,您可以在浏览器的phpinfo()中看到intl扩展,但是如果在命令行中运行
    php-m
    ,您可能会看到那里的扩展列表不包括intl

    您可以在输出的顶部使用
    php-i
    进行检查,它应该告诉您ini文件从何处加载。确保您在该ini文件中启用了intl扩展名,并且应该可以正常运行

    对于php.ini 5.6版本(使用php-v检查版本)

    对于php.ini 7.*版本

    ;extension=intl
    ; remove semicolon
    extension=intl
    

    要启用intl扩展,请按照以下说明操作

    您需要通过取消注释C:\xampp\php\php.ini文件中的以下行extension=php\u intl.dll来启用扩展。 取消对extension=php_intl.dll的注释后,必须使用XAMPP控制面板重新启动apache服务器

    //about line 998
    ;extension=php_intl.dll 
    change as
    extension=php_intl.dll
    
    (注意:php.ini文件主要位于以下目录C:\xampp\php中)

    重新启动xampp

    只需取消注释此行(要找到它,只需在编辑器中搜索此行):

    (删除分号以取消注释)


    对我来说,无需重新启动XAMPP(在您的情况下,WAMP)。但如果不起作用,请重新启动它。

    这是一个有点老的问题,但在安装magento 2时,我在linux base server上遇到了同样的问题

    当我从我的magento根目录启动
    composer update
    composer install
    命令时。它在错误下发射

    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.
       ...
    
    然后,我使用以下命令搜索可用的intl和intl扩展

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

    它解决了这个问题。

    我在Mac中使用它时遇到了这个问题,通过使用
    --忽略平台需求
    选项解决了这个问题

    composer install --ignore-platform-reqs
    
    在linux中(例如Debian Jessie):


    将该作业交给您,因为它将创建指向该作业的simbolic链接。

    如果您在运行composer安装命令时出现此错误, 别担心。 应遵循的步骤和要求:

    • 步骤1:转到服务器文件夹,如xampp(或)wampp等。
    • 第2步:打开其中的php文件夹并转到ext文件夹。
    • 第三步:如果你找到一个名为php_intl.dll的文件,没有问题
    只需转到php.ini文件并取消对该行的注释

    发件人:

    致:

    • 步骤4:重新启动xampp,就这样
    注意:如果找不到任何名为 php_intl.dll,则需要升级php版本。

    (使用xampp服务器)在“\xampp\php”中打开php.ini

    变化;extension=intlextension=intl

    只需删除它们

    "ext-intl" : "*"
    
    从composer.json文件

    因为有时候对于某些助手函数,IDE会抱怨composer.json文件中缺少扩展名。立即按Alt+Enter将其添加到composer。但这并不意味着作曲家会把他们算进去。作曲家下次在做一些操作时会抱怨。因此,我们不应该盲目地键入Alt+Enter,而不是通过执行
    composer install
    在composer中手动安装它们

    因为我认为您是手动输入的,所以应该删除它,然后按照正确的过程安装它
    composer install

    或者,对于php.ini 5.6版本(使用php-v检查版本),您可以运行
    composer update
    来计算添加的依赖项。

    );extension=php_intl.dll ; 删除分号并保持如下状态 extension=php_intl.dll

    对于php.ini 7.*版本

    ;extension=intl
    ; remove semicolon
    extension=intl
    
    );扩展名=intl ; 删除分号并保持如下状态 扩展名=intl

    注意-之后确保重新启动本地计算机中的Xampp、Wamp服务器。

    在最新的Xampp版本中; 您只需要在php.ini文件中找到intl(第912行)。 改变 ;扩展名=intl 到
    extension=intl

    我通过在ubuntu中添加--ignore platform reqs命令来解决这个问题

    composer install --ignore-platform-reqs
    

    非常感谢Seldaek,你说得对,CLI有不同的PHP.ini。它的'D:\wamp\bin\php\php5.3.13\php.ini'和WEB的'D:\wamp\bin\apache\apache2.2.22\bin\php.ini'。因此,我也必须编辑CLI php.ini。现在它开始工作了。如果有人想知道php.ini CLI使用的是什么,那么只需在CMD上运行php-i或更好的方式$php-i>php.txt。它将输出保存在php.txt文件中,然后您可以通过“加载的配置文件=>”知道php.ini路径。慈雅!!再一次谢谢你!!谢谢。您节省了几个小时。
    php--ini
    将显示CLI配置文件名。在类似Debian/Ubuntu的系统上,我们可以使用以下命令安装
    mbstring
    扩展名:
    sudo-apt-get-install-php-mbstring
    在我的Ubuntu 16.04上运行灯堆栈:取消注释(即删除后缀;符号)
    扩展名=
    
    ;extension=php_intl.dll
    
    extension=php_intl.dll
    
    "ext-intl" : "*"
    
    composer install --ignore-platform-reqs