繁体   English   中英

如何使作曲家认识国际PHP扩展

[英]How to make composer recognize intl php extension

我正在尝试安装一些symfony捆绑包以创建在本教程中找到的管理工具: http : //www.ens.ro/2012/07/13/symfony2-jobeet-day-12-the-admin-bundle/

我正在使用symfony 2.3。*,并使用composer来建立我的依赖关系,如下所述: 无法使用composer设置奏鸣曲

但是当我尝试按照上述作曲家文件(php composer.phar更新)中所述更新我的symfony buid时,出现此错误:

  • sonata-project / intl-bundle dev-master的安装请求-> sonata-project / intl-bundle [dev-master]可满足的安装请求。
    • sonata-project / intl-bundle dev-master需要ext-intl *->您的系统中缺少所请求的PHP扩展intl。

现在我知道已经安装了php intl扩展名,因为它显示在我的info.php文件中(如图所示): http : //johnpaulwhatnow.com/intl.png

那么,为什么作曲家/ symfony认为未安装intl扩展名?

规格:Mamp | php 5.4.10 | symfony 2.3.6

编辑:我确实在我的php错误日志中找到此错误:

[2013年10月24日14:05:11美国/芝加哥] 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 /中的平面命名空间第0行上的未知中的bin / php / php5.4.10 / lib / php / extensions / no-debug-non-zts-20100525 / intl.so

解决了

我不得不告诉CLI使用mamp的php,该php已安装了intl.so。 我通过创建别名来做到这一点:alias phpmamp ='/ Applications / MAMP / bin / php / php5.4.19 / bin / php'

然后运行我需要的命令:phpmamp composer.phar update --prefer-dist

谢谢您的回答!

因为您可能有两个php.ini ...一个用于cli和apache。

您必须同时加载intl扩展名。

编辑

要查找从cli运行php脚本时使用的php.ini,请在终端中使用以下命令:

php -r 'phpinfo();' | grep 'php.ini'

Composer是一个命令行工具,它使用PHP CLI版本,并且与运行在Web服务器内部的PHP相比,它通常具有不同的php.ini。

请在命令行上运行php -i并检查是否提到了intl扩展名。 我想不是。 同样,使用该扩展程序修复错误也是个好主意。 这可能是相关的-CLI版本可能触发了错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM