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=intl到extension=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