CakePHP 3.0安装:系统缺少intl扩展

时间:2014-10-09 18:13:00

标签: cakephp composer-php cakephp-3.0

使用CakePHP文档,我正在尝试使用composer安装3.0-beta2,但是我收到了这个错误:

  

cakephp/cakephp 3.0.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system

但是,我确定已经安装了intl(它显示在phpinfo上)。我正在使用PHP 5.4.33 / Apache 2.4.10.1

15 个答案:

答案 0 :(得分:111)

我今天遇到了同样的问题。您需要在PHP配置中启用 intl PHP扩展(.ini)。

解决方案Xampp(Windows)

  1. 打开/xampp/php/php.ini
  2. ;extension=php_intl.dll更改为extension=php_intl.dll(删除分号)
  3. 将所有/xamp/php/ic*.dll个文件复制到/xampp/apache/bin
  4. 在Xampp控制面板中重启apache
  5. 解决方案Linux (感谢Annamalai Somasundaram)

    1. 安装php5-intl扩展程序sudo apt-get install php5-intl

      1.1。如果您使用的是CentOS或Fedora,请使用sudo yum install php5-intl

    2. 重启apache sudo service apache2 restart

    3. 解决方案Mac/OSX(自制软件)(感谢deizel)

      1. 安装php5-intl扩展程序brew install php56-intl
      2. 如果您No available formula for php56-intl按照these说明操作。
      3. 重新启动apache sudo apachectl restart
      4. 最终您可以运行composer install来检查它是否有效。如果不是,则会出错。

答案 1 :(得分:14)

我在ubuntu 12.04中面临同样的问题

已安装:sudo apt-get install php5-intl

重新启动Apache: sudo service apache2 restart

答案 2 :(得分:8)

OS X Homebrew(2015年5月):

intl扩展程序已从主php5x公式中删除,因此您不再使用--enable-intl标记进行编译。

如果找不到新包裹:

$ brew install php56-intl
Error: No available formula for php56-intl

请按照以下说明操作:https://github.com/Homebrew/homebrew-php/issues/1701

$ brew install php56-intl
==> Installing php56-intl from homebrew/homebrew-php

答案 3 :(得分:7)

使用 MAMP

1转到终端

vim ~/.bash_profile

i

export PATH=/Applications/MAMP/bin/php/php5.6.2/bin:$PATH

将php5.6.2更改为与MAMP一起使用的php版本

点击ESC, 输入:wq, 按Enter键

source ~/.bash_profile

哪个php

2安装Mac端口

https://www.macports.org/install.php

sudo port install php5-intl 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添加扩展程序

现在,将扩展名添加到php.ini文件中:

extension=intl.so

有用的链接: https://gist.github.com/irazasyed/5987693

答案 4 :(得分:2)

简答:在php_cli.ini中激活intl扩展名。感谢@ndm的投入。

答案 5 :(得分:2)

错误消息清楚地说明了问题所在。您需要安装intl扩展。

第1步:安装PHP intl你舒适的版本

  

$ sudo apt-get install php-intl

第2步:

对于已安装XAMPP Server的intl扩展,您需要启用此扩展以取消注释php.ini文件中的行。 Php.ini文件位于c:\ xampp \ php \ php.ini或已安装XAMPP的位置。

取消评论之前:

  

; extension = php_intl.dll; extension = php_mbstring.dll

取消注释后:

  

extension = php_intl.dll extension = php_mbstring.dll

答案 6 :(得分:1)

在我的情况下,我实际上并没有尝试在本地运行cakephp,我只是尝试使用composer在本地自动更新(因为我正在使用编写使用composer安装的插件)。由于我实际上甚至不在本地运行它,我可以通过添加--ignore-platform-reqs标志来忽略需求。

php composer.phar update --ignore-platform-reqs

答案 7 :(得分:1)

对于Ubuntu终端:

请按照以下步骤操作:

第1步:

cd~

步骤-2:运行以下命令

sudo apt-get install php5-intl

步骤-3:然后您需要重新启动Apache

sudo service apache2 restart

对于Windows(XAMPP):

找到Php.ini文件:

<强> /xampp/php/php.ini

使用remove(;)半冒号更新php.ini文件,如下所述:

; extension = php_intl.dll extension = php_intl.dll

并保存php.ini文件。

之后你需要

使用xampp控件重新启动xampp

答案 8 :(得分:1)

就我而言,我在 mac OSX 上运行的php版本为7.1.x. 我使用 brew install php71-intl 安装了 intl 命令。 在php.ini中放置extension = intl.so根本没有效果。最后我找了扩展安装目录,在那里我看到了intl.so并将该路径(extension = / usr / local / Cellar / php71-intl / 7.1.11_20 / intl.so)放到我的< strong> php.ini 文件,它解决了我的问题。

答案 9 :(得分:0)

MAKE this

在XAMPP中,包含了intl扩展名,但您必须在php.ini中取消注释extension = php_intl.dll并通过XAMPP控制面板重新启动服务器。 在WAMP中,intl扩展默认为“激活”但不起作用。要使它工作,你必须转到php文件夹(默认情况下)C:\ wamp \ bin \ php \ php {version},复制所有看起来像icu * .dll的文件并将它们粘贴到apache bin目录C: \ WAMP \ BIN \ apache的\ apache的{}版本\ BIN。然后重新启动所有服务,它应该没问题。

如果您使用XAMPP,请执行此操作 1.关闭XAMPP 2.修改了php.ini位于c /:xampp / php / php.ini 3.包含intl扩展名,但您必须在php.ini中取消注释extension = php_intl.dll并通过XAMPP控制面板重新启动服务器。

答案 10 :(得分:0)

Intl意味着:国际化扩展,使程序员能够在PHP脚本中执行符合UCA的校对和数字,货币,日期,时间格式。

可以使用带有PECL的PHP​​ Intl。

return activeIDs.count

在简单的RHEL / CentOS / Fedora上,可以使用yum

安装PHP Intl
pecl install intl

在Ubuntu上,可以使用apt-get

安装PHP Intl
yum install php-intl

重新启动Apache服务以使更改生效。

那是

答案 11 :(得分:0)

对于那些收到Package not found错误的人,请尝试sudo apt-get install php7-intl,然后在项目目录中运行composer install

答案 12 :(得分:0)

我在Windows中遇到了同样的问题 错误是我安装了几个版本的PHP并且环境变量被路由到错误的PHP路径see image example

答案 13 :(得分:0)

我正在使用Mac OS High Sierra,但这些都不适用于我。但经过大量搜索,我找到了一个有效的方法!

这看起来似乎微不足道,但实际上大约2个月前,一些聪明的家伙在brew存储库中进行了更改,所以只做:brew install php71-intl会显示错误消息,表明此配方不存在。

幸运的是,有。在另一个brew回购中有临时修复,所以你要做的就是:

brew tap kyslik/homebrew-php
brew install kyslik/php/php71-intl

消息来源:http://blastar.biz/2018/04/14/how-to-enable-php-intl-extension-for-php-7-1-using-xampp-on-macos-high-sierra/

答案 14 :(得分:0)

如果您使用的是最新版本的Ubuntu 16.04或更高版本,请执行

sudo apt-get install php-intl

然后重新启动Apache

sudo service apache2 restart