2017-01-04 240 views
1

我一直试图启动一个CakePHP 3项目。当我运行作曲家install命令,我收到以下错误:安装了PHP intl扩展,但CakePHP安装说它缺少

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

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

我花了很长时间试图安装intl。而现在,我非常有信心,这的确是安装:

  1. 当我运行php -m我看到intl在PHP模块列表。
  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的正确版本和安装。

我希望我没有试图用这么多的文章和StackOverflow的答案来破坏任何东西,以得到这个工作。我知道这里有很多类似的intl问题,但到目前为止,我没有任何答案。

,所以我想这里有我的两个主要问题:

  1. 是我上面足以说明我真正拥有intl扩展正确安装列出的证据,为什么CakePHP的仍抱怨的延伸件错过了,如果它被正确安装?
  2. 如果安装不正确,我该如何解决这个问题并让CakePHP安装?

谢谢!

+0

在页面中运行'phpinfo()';并查看是否安装了intl。 Mac带有apache,所以很可能它是一个不同于你的命令行使用的PHP版本 – Farkie

+0

是的,你需要看看你的apache是​​否运行扩展,你还需要确保你的apache指向您已安装的MAMP版本的PHP,或者它指的是默认的PHP安装。 – Jravict

+0

在mac上,查看apache httpd.conf文件中的这一行:#LoadModule php5_module libexec/apache2/libphp5.so确保这一行指向MAMP php。 Httpd.conf位于/etc/apache2/httpd.conf中。如果你进入文件,你正在寻找的行应该在LoadModule部分的底部附近。 – Jravict

回答

3

谢谢大家谁在评论中伸出援手。但特别感谢Aman Rawat指向我this answer。我已经阅读了该主题,但显然忽略了它。

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

当时我能够通过composer安装CakePHP的。\

我认为我有甲基苯丙胺的PHP在我的道路。我将它作为别名,因此终端中的php将正确指向MAMP的PHP安装,但事实证明PHP实际上并未在我的PATH中。

糟糕!

+0

与其他版本的MAMP有同样的问题。感谢您发布您的答案。 – Lucho