如何在CakePHP中启用intl扩展?

7

我正在使用CakePHP 3和MAMP Pro服务器进行我的项目。当我尝试烘焙蛋糕时,出现以下错误:

致命错误:您必须启用intl扩展名才能使用CakePHP。

我甚至在我的php.ini文件中包括了intl.soextension=php_intl.dll,但无法解决此错误。


你试过重启Apache了吗? - bill
是的,我已经尝试在更改后重新启动了Mamp。 - Srinidhi Karnati
4个回答

6
一些天前,我遇到了这个问题。我安装了Ubuntu 18.04和php 7.1。
我试图运行命令php cake.php bake以使用cakephp的控制台,但是我收到以下错误消息:
  • You must enable the intl extension to use CakePHP.
这个扩展程序(intl)已经为php 7.1安装好了(php7.1-intl),但每次使用php cake.php bake时都出现此消息。
经过一番谷歌搜索,我发现需要使用以下命令安装扩展程序:
sudo apt-get install php-intl

同样的问题也出现在mbstring扩展中,我使用了以下命令:
sudo apt-get install php-mbstring

然后我用以下命令重新启动了Apache服务器:

sudo service apache2 restart

3
没有看到你的系统设置,所以很难确定问题是什么。但是从问题中提到的内容来看,你可能没有正确地设置intl扩展。首先,如果你的操作系统是Linux/macOS,并且PHP扩展是共享库(即具有.so扩展名),则php.ini条目应该是extension=intl.so而不是extension=php_intl.dll。此外,请确保intl.so文件在ini条目extension_dir配置的目录中。否则,请确保扩展ini条目是完全合格的(例如,extension=/path/to/extension/dir/intl.so)。如果你使用的是Debian / Ubuntu等有软件包管理器的Linux操作系统,则可以更轻松地安装为该发行版打包的PHP扩展。例如,在Ubuntu / Debian中,包php5-intl提供了PHP5的intl扩展(假设启用了这些存储库,则类似于PHP7的东西)。如果你从源代码构建PHP,则可以尝试将扩展打包到PHP中。请参阅手册的说明。

2

我遇到了同样的问题。

我在php.ini文件中添加了extension="php_intl.dll"并重新启动了Apache服务器。

现在可以正常工作了。


请注意,此功能仅适用于Windows用户。 - Romeo Beun

0

我也遇到了同样的问题。重新开始后,我做了以下操作:

$ brew install php
$ composer install && composer update && composer dump-autoload --optimize
$ composer self-update && composer create-project --prefer-dist cakephp/app:^3.8 cms
$ cd cms
$ bin/cake server

它正在工作!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接