Composer: The requested PHP extension ext-intl * is missing from your system
Composer PhpComposer Php Problem Overview
I am trying to use composer.json
file. but, when I am trying to run command 'composer install
' in my path/project/
, I am getting an error:
I have already configured my wamp
for 'extension=php_intl.dll
' and copied all icu*.dll
in 'D:\wamp\bin\apache\apache2.2.22\bin
' from 'D:\wamp\bin\php\php5.3.13
' and it's showing in phpinfo()
:
without copy icu*.dll
also works and showing in phpinfo()
;
Kindly, let me know if I have intl
install on my wamp
and composer install
on my pc then why I am getting this error. really, it is so annoying.
Here is my details:
- OS: windows 7 (64)
- PHP: 5.3.13
- Apache:2.2.22
- Composer: installed by executable file
- Pear: installed (latest)
- PHPUnit: installed (latest)
My composer.json
is as below:
{
"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"
}
}
}
Let me know if any other details is required..
Any feedback/help would be highly appreciated.
Composer Php Solutions
Solution 1 - Composer Php
I encountered this using it in Mac, resolved it by using --ignore-platform-reqs
option.
composer install --ignore-platform-reqs
Solution 2 - Composer Php
PHP uses a different php.ini for command line php than for the web/apache php. So you see the intl extension in phpinfo() in the browser, but if you run php -m
in the command line you might see that the list of extensions there does not include intl.
You can check using php -i
on top of the output it should tell you where the ini file is loaded from. Make sure you enable the intl extension in that ini file and you should be good to go.
For php.ini 5.6 version (check version using php -v)
;extension=php_intl.dll
; remove semicolon
extension=php_intl.dll
For php.ini 7.* version
;extension=intl
; remove semicolon
extension=intl
Solution 3 - Composer Php
In linux (Debian Jessie for example):
apt-get install php7.0-intl
will make the job to you due will create a simbolic link to it.
Solution 4 - Composer Php
To enable intl extension follow the instructions below.
You need enable extension by uncommenting the following line extension=php_intl.dll in the C:\xampp\php\php.ini file. Once you uncomment the extension=php_intl.dll, then you must restart apache server using XAMPP control panel.
//about line 998
;extension=php_intl.dll
change as
extension=php_intl.dll
(Note: php.ini file mostly in the following directory C:\xampp\php)
Restart xampp
Solution 5 - Composer Php
I have solved this problem by adding --ignore-platform-reqs command with composer install in ubuntu.
composer install --ignore-platform-reqs
Solution 6 - Composer Php
just remove them
"ext-intl" : "*"
from your composer.json file.
Because sometimes for some helper functions, the IDE complains that the extension is missing from the composer.json file. Immediately press Alt+Enter to add it to the composer. But that doesn't mean that composer will count them in. The composer will complain next time while doing some operations. So that, we should not blindly type Alt+Enter rather than installing them manually in composer by doing composer install <package-name>
.
As I think you have entered it manually, you should remove it, then install it in proper procedure composer install <package-name>
Or else you can run composer update
to count that added dependencies in.
Solution 7 - Composer Php
This is bit old question but I had faced same problem on linux base server while installing magento 2.
When I am firing composer update
or composer install
command from my magento root dir. Its was firing below error.
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.
...
Then, I searched for the available intl & intl extensions, using below commands.
yum list php*intl
yum install php-intl.x86_64
yum list php*mbstring
yum install php-mbstring.x86_64
And it fixed the issue.
Solution 8 - Composer Php
If You have got this error while running composer install command,
don't worry.
Steps to be followed and requirements:
- Step1: Go to server folder such as xampp(or) wampp etc.
- Step2: open php folder inside that and go to ext folder.
- Step3: If you find a file named as php_intl.dll no problem.
Just go to php.ini file and uncomment the line
From:
;extension=php_intl.dll
To:
extension=php_intl.dll
- Step4: restart xampp, thats it
Note: If you don't find any of the file named as php_intl.dll, then you need to upgrade the PHP version.
Solution 9 - Composer Php
(with xampp server)open php.ini in ".\xampp\php"
change ;extension=intl to extension=intl
Solution 10 - Composer Php
For php.ini 5.6 version (check version using php -v)
;extension=php_intl.dll ; remove semicolon and keep like this extension=php_intl.dll
For php.ini 7.* version
;extension=intl ; remove semicolon and keep like this extension=intl
Note - After That Make Sure to Restart Your Xampp,Wamp Server in you Local Machine.
Solution 11 - Composer Php
Just uncomment this line (to find it, simply search this line in editor):
;extension=php_sockets.dll
(Remove semicolon to uncomment)
For me, no need to restart XAMPP (in your case, WAMP). But if didn't work, restart it.
Solution 12 - Composer Php
In latest XAMPP version; You need to find only intl(Line no 912)in php.ini file. Change ;extension=intl To extension=intl
Solution 13 - Composer Php
In my case, I am using ubuntu, run this command, it will be solved if your system is also ubuntu.
sudo apt-get install php-intl