The requested PHP extension intl is missing from your system (SonataAdminBundle) in Symfony2

StackOverflow https://stackoverflow.com/questions/17698434

  •  03-06-2022
  •  | 
  •  

Question

I try to install the sandbox but I get the following error from composer:

Loading composer repositories with package information Installing dependencies from lock file Your requirements could not be resolved to an installable set of packages.

Problem 1

- Installation request for sonata-project/intl-bundle 2.1.0 -> satisfiable by sonata-project/intl-bundle 2.1.0.`

- sonata-project/intl-bundle 2.1.0 requires ext-intl * -> the requested PHP extension intl is missing from your system.`

Problem 2

- sonata-project/intl-bundle 2.1.0 requires ext-intl * -> the requested PHP extension intl is missing from your system.`

- sonata-project/news-bundle 2.1.x-dev requires sonata-project/intl-bundle 2.1.* -> satisfiable by sonata-project/intl-bundle 2.1.0.
- Installation request for sonata-project/news-bundle 2.1.
Was it helpful?

Solution

I had the same problem while I was installing new Magento 2.0, after different hit and trials, I manged to solve it by following these steps:

I copied all icu* files from php directory to Appache directory, and it worked.

Php direcotry:

WAMP\bin\php\php5.5.12

Appache Directory:

WAMP\bin\apache\apache2.4.9

Make sure to un-comment following line in php.ini file:

extension=ext/php_intl.dll

OTHER TIPS

Linux user

yum install php-intl

Like @Hugehornet pointed out - you should enable this extension in php.ini by uncommenting this line: extension=ext/php_intl.dll

If you use wamp's interface for this task you are actually updating the php.ini file located in apache's directory.

Example: C:\wamp\bin\apache\Apache2.4.4\bin\php.ini

Composer is using the one located in the php's installation directory.

Example: C:\wamp\bin\php\php5.4.12\php.ini

You should manually edit the latter and restart the wamp server.

You need to enable the intl extension in php just as the error says. In your php.ini file, uncomment the line extension=ext/php_intl.dll or something like this.

Edit : note that if you are using wamp or something like this, you should be aware of the fact that the php.ini file in the wamp config is not necessarily the one used by composer.

First of all be sure that your server is isung x86 build (intl not working with x64), then:

  • activate intl extension in php.ini directly
  • copy all icu*.dll form php directory to apache directory
  • make sure your console using the same php folder you just configured source.

In my windows system I have two php.ini files at the flowing paths:

C:\wamp\bin\php\phpx.y.z
C:\wamp\bin\apache\Apachex.y.z\bin

I don't know which one is in your path. Just make sure to add the extension in both of them to eliminate any doubt.

I am on a Mac OS X Yosemite, and I fix this error

the requested PHP extension mcrypt is missing from your system

by running the following commands :

brew update
brew upgrade
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
brew install php54-mcrypt

If intl has already been enabled and it doesn't works, add your PHP directory in the Path environment variable, then restart your server. (for example C:\Program Files\wamp\bin\php\phpX.XXX.XXX for wamp)

It has worked for me!

On Ubuntu, Debian, and related Linux distributions

sudo apt-get install php-intl

to install the extension for the default PHP version. For other versions a variation like apt-get install php7.3-intl will choose the correct extension if the version provided is correct.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top