我一直试图启动一个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。而现在,我非常有信心,这的确是安装:
- 当我运行
php -m
我看到intl
在PHP模块列表。 - 我在我的php.ini中有
extension=intl.so
,位于/Applications/MAMP/bin/php/php5.6.25/conf/php.ini
。 - 文件
intl.so
位于目录/Applications/MAMP/bin/php/php5.6.25/lib/php/extensions/no-debug-non-zts-20131226
。 - 在MAMP的phpinfo页面上,我可以在Configure Command单元格中看到
'--enable-intl'
。在页面的下方,它有自己的表格,表明1.1.0版本支持国际化。但是,在此表中,对于行intl.default_locale
,值为no value
。这可能是我的问题吗? - 在我的
~/.zshrc
文件中,我有alias php="/Applications/MAMP/bin/php/php5.6.25/bin/php"
,所以我可以肯定我使用的是PHP的正确版本和安装。
我希望我没有试图用这么多的文章和StackOverflow的答案来破坏任何东西,以得到这个工作。我知道这里有很多类似的intl
问题,但到目前为止,我没有任何答案。
,所以我想这里有我的两个主要问题:
- 是我上面足以说明我真正拥有
intl
扩展正确安装列出的证据,为什么CakePHP的仍抱怨的延伸件错过了,如果它被正确安装? - 如果安装不正确,我该如何解决这个问题并让CakePHP安装?
谢谢!
在页面中运行'phpinfo()';并查看是否安装了intl。 Mac带有apache,所以很可能它是一个不同于你的命令行使用的PHP版本 – Farkie
是的,你需要看看你的apache是否运行扩展,你还需要确保你的apache指向您已安装的MAMP版本的PHP,或者它指的是默认的PHP安装。 – Jravict
在mac上,查看apache httpd.conf文件中的这一行:#LoadModule php5_module libexec/apache2/libphp5.so确保这一行指向MAMP php。 Httpd.conf位于/etc/apache2/httpd.conf中。如果你进入文件,你正在寻找的行应该在LoadModule部分的底部附近。 – Jravict