Composer:系统中缺少所请求的PHP扩展名ext-intl *

时间:2014-03-11 17:22:03

标签: composer-php

我正在尝试使用composer.json文件。但是,当我试图运行命令' composer install'在我的path/project/中,我收到了错误消息:

enter image description here

我已经为我的wamp配置了extension=php_intl.dll'并复制了icu*.dll' D:\wamp\bin\apache\apache2.2.22\bin'中的所有D:\wamp\bin\php\php5.3.13来自' phpinfo()'并且它显示在icu*.dll

enter image description here

没有副本phpinfo()也可以在intl;

中显示

请告诉我,如果我 wamp composer install composer.json 安装>在我的电脑上然后我收到此错误。真的,这太烦人了。

以下是我的详细信息:

  1. 操作系统:Windows 7(64)
  2. PHP:5.3.13
  3. 的Apache:2.2.22
  4. Composer:由可执行文件安装
  5. 梨子:已安装(最新)
  6. PHPUnit:已安装(最新)
  7. 我的 { "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" } } } 如下:

    {{1}}

    如果需要任何其他详细信息,请与我们联系。

    任何反馈/帮助都将受到高度赞赏。

12 个答案:

答案 0 :(得分:31)

wamp的问题通常是它使用与命令行php不同的php.ini而不是web / apache php。所以你在浏览器中看到了phpinfo()中的intl扩展,但是如果你在命令行中运行php -m,你会看到那里的扩展列表不包含intl。

您可以在输出的顶部使用php -i进行检查,它应该告诉您加载ini文件的位置。确保在该ini文件中启用了intl扩展,你应该好好去。

答案 1 :(得分:29)

我在Mac中遇到过这种情况,使用--ignore-platform-reqs选项解决了这个问题。

composer install --ignore-platform-reqs

答案 2 :(得分:11)

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

您需要通过在C:\ xampp \ php \ php.ini文件中取消注释以下行extension = php_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

答案 3 :(得分:9)

在linux中(例如Debian Jessie):

apt-get install php7.0-intl

将使你的工作到期,因为它将创建一个与之相关的信号链接。

答案 4 :(得分:2)

只需删除它们

"ext-intl" : "*"

来自您的composer.json文件。

由于有时会使用一些辅助功能,因此IDE抱怨composer.json文件中缺少扩展名。立即按Alt + Enter将其添加到作曲家。但这并不意味着作曲家会把它们算在内。下次做一些操作时,作曲家会抱怨。因此,我们不应该盲目地输入Alt + Enter,而不要通过执行composer install <package-name>在composer中手动安装它们。

我认为您是手动输入的,应该将其删除,然后按照正确的过程composer install <package-name>

安装

否则,您可以运行composer update来计算添加的依赖项。

答案 5 :(得分:0)

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

;extension=php_sockets.dll

(删除分号以取消注释)

对我来说,无需重启XAMPP(在您的情况下,WAMP)。但如果没有工作,请重启。

答案 6 :(得分:0)

这是一个有点老问题,但在安装magento 2时,我在linux基本服务器上遇到了同样的问题。

当我从我的magento root目录发射composer updatecomposer 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&amp;使用以下命令扩展intl扩展名。

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

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

它解决了这个问题。

答案 7 :(得分:0)

如果在运行composer install命令时遇到此错误, 不用担心 要遵循的步骤和要求:

  • 第一步:转到服务器文件夹,例如xampp(或)wampp等。
  • Step2:打开其中的php文件夹,然后转到ext文件夹。
  • 第3步:如果找到名为 php_intl.dll 的文件,则没问题。

只需转到php.ini文件并取消注释该行

发件人:

;extension=php_intl.dll

收件人:

extension=php_intl.dll
  • Step4:重新启动xampp,就这样

注意:如果找不到名为的任何文件 php_intl.dll ,那么您需要升级PHP版本。

答案 8 :(得分:0)

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

; extension = intl 更改为 extension = intl

答案 9 :(得分:0)

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

; extension = php_intl.dll ;删除分号并保持这样 extension = php_intl.dll

对于php.ini 7. *版本

; extension = intl ;删除分号并保持这样 extension = intl

注意-确保重新启动Xampp之后,请在本地计算机中清理服务器。

答案 10 :(得分:0)

最新的XAMPP版本; 您只需要在php.ini文件中找到intl(第912行)即可。 更改 ; extension = intl 至 extension = intl

答案 11 :(得分:0)

我通过在 ubuntu 中使用 composer install 添加 --ignore-platform-reqs 命令解决了这个问题。

composer install --ignore-platform-reqs