68

使用 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

4

17 回答 17

119

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

解决方案 Xampp (Windows)

  1. 打开/xampp/php/php.ini
  2. 改为;extension=php_intl.dllextension=php_intl.dll去掉分号)
  3. 将所有/xampp/php/ic*.dll文件复制到/xampp/apache/bin
  4. 在 Xampp 控制面板中重启 apache

Linux解决方案(感谢 Annamalai Somasundaram)

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

    1.1。sudo yum install php5-intl如果您在 CentOS 或 Fedora 上,也可以使用。

  2. 重启阿帕奇sudo service apache2 restart

解决方案Mac/OSX(自制)(感谢 deizel)

  1. 安装 php5-intl 扩展brew install php56-intl
  2. 如果你得到No available formula for php56-intl遵循这些说明。
  3. 重启阿帕奇sudo apachectl restart

最终,您可以运行composer install以检查它是否正常工作。如果不是,它将给出错误。

于 2014-10-10T22:08:44.277 回答
14

我在 ubuntu 12.04 中遇到了同样的问题

安装:sudo apt-get install php5-intl

重新启动了Apache: sudo service apache2 restart

于 2015-03-24T06:58:04.470 回答
8

使用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

于 2015-05-04T08:23:01.170 回答
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
于 2015-05-22T03:03:34.503 回答
3

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

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

$sudo apt-get install php-intl

第2步:

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

取消注释前:

;扩展=php_intl.dll ;扩展=php_mbstring.dll

取消注释后:

扩展=php_intl.dll 扩展=php_mbstring.dll

于 2017-09-11T09:03:05.567 回答
2

简短回答:在 php_cli.ini 中激活 intl 扩展。感谢@ndm 的意见。

于 2014-10-10T02:20:34.313 回答
2

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

sudo apt-get install php-intl

然后重启你的apache

sudo service apache2 restart
于 2019-02-26T10:26:58.350 回答
1

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

于 2017-11-29T19:24:38.103 回答
1

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

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

于 2016-02-23T04:29:07.570 回答
0

做这个

在 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 中取消注释 extension=php_intl.dll。 ini 并通过 XAMPP 控制面板重新启动服务器。

于 2015-09-25T08:44:06.767 回答
0

我用的是Linux Ubuntu 20,你可以试试这个:

检查php安装的模块:
php -m | grep intl

如果此命令没有结果,您应该继续安装模块:
sudo apt-get install php7.4-intl
您需要更改*php7.4为所需的 php 版本。

完成后,您应该重新启动 apache:
sudo service apache2 restart

于 2022-01-24T12:27:19.533 回答
0

对于 Ubuntu 终端:

请按照以下步骤操作:

步骤1:

光盘~

步骤-2:运行以下命令

sudo apt-get install php5-intl

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

sudo 服务 apache2 重启


对于 Windows(XAMPP):

找到 Php.ini 文件:

/xampp/php/php.ini

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

;extension=php_intl.dllextension=php_intl.dll

并保存 php.ini 文件。

之后你需要

使用 xampp control 重新启动 xampp

于 2016-04-04T06:04:47.937 回答
0

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

于 2016-08-03T08:44:15.637 回答
0

Intl Means:国际化扩展,使程序员能够在 PHP 脚本中执行符合 UCA 的排序规则和数字、货币、日期、时间格式。

可以使用 PECL 启用 PHP Intl。

pecl install intl

在普通的 RHEL/CentOS/Fedora 上,可以使用 yum 安装 PHP Intl

yum install php-intl

在 Ubuntu 上,可以使用 apt-get 安装 PHP Intl

 apt-get install php5-intl

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

而已

于 2016-07-13T11:09:51.977 回答
0

我在windows中遇到了同样的问题错误是我安装了几个版本的PHP并且环境变量路由到了错误的php路径参见图片示例

于 2017-08-07T17:26:40.600 回答
0

我正在使用 Mac OS High Sierra,但这些都不适合我。但是在搜索了很多之后,我发现了一个有效的!

这可能看起来微不足道,但实际上大约 2 个月前,一些聪明的人在 brew 存储库中进行了更改,所以这样做:brew install php71-intl将向您显示错误消息,即此类配方不存在。

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

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/

于 2018-06-01T18:31:00.177 回答
0

在我的情况下(xampp PHP 8.0)在 删除并重新启动 Apache中
查找;extension=intl/xampp/php/php.ini
;

于 2022-01-13T16:00:17.063 回答