使用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
答案 0 :(得分:111)
我今天遇到了同样的问题。您需要在PHP配置中启用 intl PHP扩展(.ini
)。
解决方案Xampp(Windows)
/xampp/php/php.ini
;extension=php_intl.dll
更改为extension=php_intl.dll
(删除分号)/xamp/php/ic*.dll
个文件复制到/xampp/apache/bin
解决方案Linux (感谢Annamalai Somasundaram)
安装php5-intl扩展程序sudo apt-get install php5-intl
1.1。如果您使用的是CentOS或Fedora,请使用sudo yum install php5-intl
。
重启apache sudo service apache2 restart
解决方案Mac/OSX(自制软件)(感谢deizel)
brew install php56-intl
No available formula for php56-intl
按照these说明操作。sudo apachectl restart
最终您可以运行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
答案 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 Intlpecl install intl
在Ubuntu上,可以使用apt-get
安装PHP Intlyum 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
答案 14 :(得分:0)
如果您使用的是最新版本的Ubuntu 16.04或更高版本,请执行
sudo apt-get install php-intl
然后重新启动Apache
sudo service apache2 restart