PHP 国际扩展已安装,但 CakePHP 安装说它丢失
PHP intl extension is installed, but CakePHP install says it is missing
一天多以来,我一直在尝试启动 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) 运行ning PHP 5.6.25。我正在尝试通过我的终端安装 CakePHP 3.3.x,它使用 ZSH 而不是 Bash.
我花了很长时间尝试安装 intl。到现在为止,我非常有信心它确实已安装:
- 当我 运行
php -m
我在 PHP 模块列表中看到 intl
。
- 我的 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'
。在页面的下方,它有自己的 table,表明 1.1.0 版支持国际化。但是,在此 table 中,第 intl.default_locale
行的值为 no value
。这可能是我的问题吗?
- 在我的
~/.zshrc
文件中有 alias php="/Applications/MAMP/bin/php/php5.6.25/bin/php"
,所以我可以确定我使用的 PHP. 的版本和安装是正确的
我希望我没有因为尝试使用如此多的文章和 Whosebug 答案来使它正常工作而毁掉任何东西。我知道这里有很多类似的 intl
问题,但到目前为止我还没有找到任何答案。
所以我想这是我的两个主要问题:
- 我上面列出的证据是否足以表明我确实正确安装了
intl
扩展,为什么 CakePHP 仍然抱怨扩展已正确安装?
- 如果安装不正确,我该如何更正并安装 CakePHP?
谢谢!
感谢所有在评论中伸出援手的人。但要特别感谢 Aman Rawat for pointing me to this answer。我已经多次阅读该线程,但显然忽略了它。
我将 export PATH="/Applications/MAMP/bin/php/php5.6.25/bin:$PATH"
添加到 ~/.zshrc
。
然后我可以通过 composer
安装 CakePHP。\
我以为我的路径中有 MAMP 的 PHP。我把它作为别名,所以终端中的 php
会正确地指向 MAMP 的 PHP 安装,但事实证明 PHP 实际上从来没有在我的路径中。
糟糕!
I think you have not enabled intl extension from php.ini file.
一天多以来,我一直在尝试启动 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) 运行ning PHP 5.6.25。我正在尝试通过我的终端安装 CakePHP 3.3.x,它使用 ZSH 而不是 Bash.
我花了很长时间尝试安装 intl。到现在为止,我非常有信心它确实已安装:
- 当我 运行
php -m
我在 PHP 模块列表中看到intl
。 - 我的 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'
。在页面的下方,它有自己的 table,表明 1.1.0 版支持国际化。但是,在此 table 中,第intl.default_locale
行的值为no value
。这可能是我的问题吗? - 在我的
~/.zshrc
文件中有alias php="/Applications/MAMP/bin/php/php5.6.25/bin/php"
,所以我可以确定我使用的 PHP. 的版本和安装是正确的
我希望我没有因为尝试使用如此多的文章和 Whosebug 答案来使它正常工作而毁掉任何东西。我知道这里有很多类似的 intl
问题,但到目前为止我还没有找到任何答案。
所以我想这是我的两个主要问题:
- 我上面列出的证据是否足以表明我确实正确安装了
intl
扩展,为什么 CakePHP 仍然抱怨扩展已正确安装? - 如果安装不正确,我该如何更正并安装 CakePHP?
谢谢!
感谢所有在评论中伸出援手的人。但要特别感谢 Aman Rawat for pointing me to this answer。我已经多次阅读该线程,但显然忽略了它。
我将 export PATH="/Applications/MAMP/bin/php/php5.6.25/bin:$PATH"
添加到 ~/.zshrc
。
然后我可以通过 composer
安装 CakePHP。\
我以为我的路径中有 MAMP 的 PHP。我把它作为别名,所以终端中的 php
会正确地指向 MAMP 的 PHP 安装,但事实证明 PHP 实际上从来没有在我的路径中。
糟糕!
I think you have not enabled intl extension from php.ini file.