CakePHP 3.0 installation: intl extension missing from system
CakephpComposer PhpCakephp 3.0Cakephp Problem Overview
Using the CakePHP docs, I am trying to install 3.0-beta2 using composer but I got this error:
> cakephp/cakephp 3.0.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system
However, I know for sure that intl is installed (it shows on phpinfo). I'm using PHP 5.4.33/Apache 2.4.10.1
Cakephp Solutions
Solution 1 - Cakephp
I faced the same problem today. You need to enable the intl PHP extension in your PHP configuration (.ini
).
Solution Xampp (Windows)
- Open
/xampp/php/php.ini
- Change
;extension=php_intl.dll
toextension=php_intl.dll
(remove the semicolon) - Copy all the
/xampp/php/ic*.dll
files to/xampp/apache/bin
- Restart apache in the Xampp control panel
Solution Linux (thanks to Annamalai Somasundaram)
-
Install the php5-intl extension
sudo apt-get install php5-intl
1.1. Alternatively use
sudo yum install php5-intl
if you are on CentOS or Fedora. -
Restart apache
sudo service apache2 restart
Solution Mac/OSX (homebrew) (thanks to deizel)
- Install the php5-intl extension
brew install php56-intl
- If you get
No available formula for php56-intl
follow these instructions. - Restart apache
sudo apachectl restart
Eventually you can run composer install
to check if it's working. It will give an error if it's not.
Solution 2 - Cakephp
I faced the same issue in ubuntu 12.04
Installed: sudo apt-get install php5-intl
Restarted the Apache: sudo service apache2 restart
Solution 3 - Cakephp
When using MAMP
1 Go to terminal
vim ~/.bash_profile
i
export PATH=/Applications/MAMP/bin/php/php5.6.2/bin:$PATH
Change php5.6.2 to the php version you use with MAMP
Hit ESC,
Type :wq
,
hit Enter
source ~/.bash_profile
which php
2 Install Mac Ports
https://www.macports.org/install.php
sudo port install php5-intl
OR sudo port install php53-intl
cp /opt/local/lib/php/extensions/no-debug-non-zts-20090626/intl.so /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/
{take a good look at the folder names that u use the right ones}
3 Add extension
Now, add the extension to your php.ini
file:
extension=intl.so
Usefull Link: https://gist.github.com/irazasyed/5987693
Solution 4 - Cakephp
OS X Homebrew (May 2015):
The intl
extension has been removed from the main php5x
formulas, so you no longer compile with the --enable-intl
flag.
If you can't find the new package:
$ brew install php56-intl
Error: No available formula for php56-intl
Follow these instructions: https://github.com/Homebrew/homebrew-php/issues/1701
$ brew install php56-intl
==> Installing php56-intl from homebrew/homebrew-php
Solution 5 - Cakephp
The error message clearly states what the problem is. You need the intl extension installed.
Step 1: install PHP intl you comfortable version
> $sudo apt-get install php-intl
step 2:
For XAMPP Server intl extension is already installed, you need to enable this extension to uncomment below the line in your php.ini file. Php.ini file is located at c:\xampp\php\php.ini or where you have installed XAMPP.
Before uncomment:
> ;extension=php_intl.dll ;extension=php_mbstring.dll
After uncommenting:
> extension=php_intl.dll extension=php_mbstring.dll
Solution 6 - Cakephp
Short answer: activate intl extension in php_cli.ini. Thanks to @ndm for his input.
Solution 7 - Cakephp
If you are using latest version Ubuntu 16.04 or later just do
sudo apt-get install php-intl
Then restart your apache
sudo service apache2 restart
Solution 8 - Cakephp
In my case I was not actually trying to run cakephp locally, I was just trying to get it to auto update locally using composer (because I am playing with writing plugins that you install with composer). Since I don't actually even run it locally I could simply ignore requirements by adding the --ignore-platform-reqs flag.
Solution 9 - Cakephp
In my case, my running php version is 7.1.x on mac OSX . I installed intl command using brew install php71-intl. Placing extension=intl.so inside php.ini was no effect at all. Finally i looked for extension installed directory and there i saw intl.so and placed that path (extension=/usr/local/Cellar/php71-intl/7.1.11_20/intl.so) to my php.ini file and it solved my problem.
Solution 10 - Cakephp
MAKE this
In XAMPP, intl extension is included but you have to uncomment extension=php_intl.dll in php.ini and restart the server through the XAMPP Control Panel. In WAMP, the intl extension is “activated” by default but not working. To make it work you have to go to php folder (by default) C:\wamp\bin\php\php{version}, copy all the files that looks like icu*.dll and paste them into the apache bin directory C:\wamp\bin\apache\apache{version}\bin. Then restart all services and it should be OK.
if you use XAMPP do this
- turn off XAMPP
- Modifed the php.ini is located in c/:xampp/php/php.ini
- intl extension is included but you have to uncomment extension=php_intl.dll in php.ini and restart the server through the XAMPP Control Panel.
Solution 11 - Cakephp
For Ubuntu terminal:
Please follow the steps:
Step-1:
cd ~
Step -2: Run the following commands
sudo apt-get install php5-intl
Step -3: You then need to restart Apache
sudo service apache2 restart
For Windows(XAMPP) :
Find the Php.ini file:
/xampp/php/php.ini
Update the php.ini file with remove (;) semi colon like mentioned below:
;extension=php_intl.dll to extension=php_intl.dll
and save the php.ini file.
After that you need to
Restart the xampp using xampp control.
Solution 12 - Cakephp
Intl Means :Internationalization extension which enables programmers to perform UCA-conformant collation and number,currency,date,time formatting in PHP scripts.
To enable PHP Intl with PECL can be used.
pecl install intl
On a plain RHEL/CentOS/Fedora, PHP Intl can be install using yum
yum install php-intl
On Ubuntu, PHP Intl can be install using apt-get
apt-get install php5-intl
Restart Apache service for the changes to take effect.
That's it
Solution 13 - Cakephp
For those who get Package not found
error try sudo apt-get install php7-intl
then run composer install
in your project directory.
Solution 14 - Cakephp
I had the same problem in windows The error was that I had installed several versions of PHP and the Environment Variables were routing to wrong Path of php see image example
Solution 15 - Cakephp
I'm using Mac OS High Sierra and none of these worked for me. But after searching a lot I found one that worked!
This may seem trivial, but in fact about 2 months ago some clever guys made changes in brew repository, so doing just: brew install php71-intl
will show you error with message that such recipe doesn’t exists.
Fortunately, there is. There is temporary fix in another brew repo, so all you have to do is:
brew tap kyslik/homebrew-php
brew install kyslik/php/php71-intl
Solution 16 - Cakephp
In my case (xampp PHP 8.0)
Find ;extension=intl
in /xampp/php/php.ini
Remove ;
and Restart Apache
Solution 17 - Cakephp
I use Linux Ubuntu 20, you can try this:
Check php installed modules:
php -m | grep intl
If there are no result(s) from this command, you should just go ahead and install the module:
sudo apt-get install php7.4-intl
you will need to change *php7.4
to your desired php version.
you should restart apache when you're done:
sudo service apache2 restart