如何在CakePHP中启用intl扩展?

时间:2017-08-09 16:41:43

标签: cakephp-3.0 php-7 php-extension mamp-pro intl

我正在为我的项目使用CakePHP 3和MAMP Pro服务器。当我试图烤蛋糕时,出现了这个错误:

  

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

我甚至在我的php.ini文件中包含了 intl.so extension = php_intl.dll ,但无法找到此错误的解决方案。

3 个答案:

答案 0 :(得分: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扩展(假设你已经启用了那些repos,我认为它类似于PHP7。)

如果从源代码构建PHP,可以尝试将扩展名捆绑到PHP中。请参阅manual

中的说明

答案 1 :(得分:2)

这个问题是几天前发生在我身上的。我已经安装了Ubuntu 18.04和php 7.1。

我试图在orden中运行逗号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时都会出现此消息

经过Google的一些搜索,我发现我必须安装扩展程序,但是要使用以下命令:

sudo apt-get install php-intl

扩展名mbstring发生了同样的问题,我使用了以下命令:

sudo apt-get install php-mbstring

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

sudo service apache2 restart

答案 2 :(得分: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

它正在工作!