我正在尝试安装一些symfony包来创建本教程中的管理工具:http://www.ens.ro/2012/07/13/symfony2-jobeet-day-12-the-admin-bundle/
我正在使用symfony 2.3。*并使用composer作为我的依赖项,如下所述:Cannot setup sonata using composer
但是当我尝试按照上面的作曲家文件(php composer.phar update)中的描述更新我的symfony buid时,我收到此错误:
现在我知道安装了php intl扩展,因为它显示在我的info.php文件中(如图所示): http://johnpaulwhatnow.com/intl.png
那么为什么composer / symfony认为没有安装intl扩展?
规格: 甲基苯丙胺| php 5.4.10 | symfony 2.3.6
编辑:我在我的php错误日志中找到了这个错误:
[2013年10月24日14:05:11 America / Chicago] PHP警告:PHP启动: 无法加载动态库 '/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/intl.so' - dlopen(/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/intl.so, 9):找不到符号:_zend_new_interned_string引用自: /Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/intl.so 预计在:平面命名空间中 /Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/intl.so 在第0行的未知中
解决
我不得不告诉我的CLI使用mamp的php,它安装了intl.so。我通过创建别名来做到这一点:alias phpmamp ='/ Applications / MAMP / bin / php / php5.4.19 / bin / php'
然后运行我需要的命令:phpmamp composer.phar update --prefer-dist
谢谢你的回答!
答案 0 :(得分:1)
因为你可能有两个php.ini ...一个用于cli和apache。
您必须在两者中加载intl扩展名。
修改强>
要查找从cli运行php脚本时使用的php.ini,请在终端中使用此命令:
php -r 'phpinfo();' | grep 'php.ini'
答案 1 :(得分:0)
Composer是一个命令行工具,它使用PHP CLI版本,这通常比在Web服务器中运行的PHP有不同的php.ini。
请在命令行上运行php -i
并检查是否提及intl
扩展名。我想不是。另外,使用该扩展修复错误也是个好主意。这可能是相关的 - CLI版本可能已触发错误。