安装了PHP intl扩展,但CakePHP安装说缺少

时间:2017-01-04 20:26:41

标签: php cakephp cakephp-3.x intl

一天以来,我一直在尝试启动CakePHP 3项目。当我运行composer install命令时,出现以下错误:

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

我正在使用MacOS Sierra 10.12.2。 XCode和所有爵士乐都是最新的。我通过MAMP Pro 4.0.1(3985)运行PHP 5.6.25。我正在尝试通过我的终端安装CakePHP 3.3.x,它使用的是ZSH而不是Bash。

我花了很长时间尝试安装intl。到现在为止,我确信它确实安装了:

  1. 当我运行php -m时,我在PHP模块列表中看到intl
  2. 我的php.ini中有extension=intl.so,位于/Applications/MAMP/bin/php/php5.6.25/conf/php.ini
  3. 文件intl.so位于目录/Applications/MAMP/bin/php/php5.6.25/lib/php/extensions/no-debug-non-zts-20131226
  4. 在MAMP的phpinfo页面上,我可以在Configure Command单元格中看到'--enable-intl'。在页面的下方,它有自己的表,显示版本1.1.0支持国际化。但是,在此表中,对于行intl.default_locale,值为no value。这可能是我的问题吗?
  5. 在我的~/.zshrc文件中我有alias php="/Applications/MAMP/bin/php/php5.6.25/bin/php"所以我可以确定我使用的是正确版本和PHP安装。
  6. 我希望我没有通过尝试使用这么多文章和StackOverflow答案来破坏任何东西。我知道这里有一些类似的intl问题,但到目前为止,我对任何答案都没有运气。

    所以我认为这是我的两个主要问题:

    1. 上面列出的证据是否足以表明我确实正确安装了intl扩展名,为什么CakePHP仍然会抱怨如果正确安装了扩展程序?
    2. 如果安装不正确,我该如何更正并安装CakePHP?
    3. 谢谢!

2 个答案:

答案 0 :(得分:4)

感谢所有参与评论的人。但特别感谢Aman Rawat向我指出this answer。我已多次阅读该帖子,但显然忽略了它。

我将export PATH="/Applications/MAMP/bin/php/php5.6.25/bin:$PATH"添加到~/.zshrc

然后我可以通过composer安装CakePHP。\

我以为我的路上有MAMP的PHP。我把它作为别名,所以终端中的php会正确地指向MAMP的PHP安装,但事实证明PHP实际上从未在我的PATH中。

糟糕!

答案 1 :(得分:0)

  

我认为您尚未从php.ini文件启用intl扩展名。