我试图安装沙盒,但我从composer那里得到了以下错误:
正在加载包含包信息的composer存储库正在安装锁定文件中的依赖项您的要求无法解析为一组可安装的程序包。
问题1
- Installation request for sonata-project/intl-bundle 2.1.0 -> satisfiable by sonata-project/intl-bundle 2.1.0.`
- sonata-project/intl-bundle 2.1.0 requires ext-intl * -> the requested PHP extension intl is missing from your system.`
问题2
- sonata-project/intl-bundle 2.1.0 requires ext-intl * -> the requested PHP extension intl is missing from your system.`
- sonata-project/news-bundle 2.1.x-dev requires sonata-project/intl-bundle 2.1.* -> satisfiable by sonata-project/intl-bundle 2.1.0.
- Installation request for sonata-project/news-bundle 2.1.
我在安装新的Magento 2.0时遇到了同样的问题,经过不同的尝试,我设法通过以下步骤解决了它:
我将所有icu*文件从php目录复制到Appache目录,并成功了。
Php目录:
WAMP''bin''php''php5.5.12
Appache目录:
WAMP''bin''apache''apache2.4.9
确保在php.ini文件中取消注释以下行:
extension=ext/php_intl.dll
Linux用户
yum install php-intl
如@Hugehornet所指出的-您应该通过取消注释此行来在php.ini中启用此扩展:extension=ext/php_intl.dll
如果您使用wamp的接口执行此任务,那么实际上是在更新apache目录中的php.ini文件。
示例:C:''wamp''bin''apache''Apache2.4.4''bin''php.ini
Composer正在使用位于php安装目录中的一个。
示例:C:''wamp''bin''php''php5.4.12''php.ini
您应该手动编辑后者并重新启动wamp服务器。
您需要像错误所说的那样在php中启用intl扩展。在php.ini文件中,取消对行extension=ext/php_intl.dll
或类似内容的注释。
编辑:请注意,如果您使用的是wamp或类似的东西,您应该意识到wamp配置中的php.ini文件不一定是composer使用的文件。
首先要确保您的服务器是x86版本(intl不适用于x64),然后:
- 直接激活
php.ini
中的intl扩展 - 将所有
icu*.dll
表单php目录复制到apache目录 - 确保您的控制台使用刚才配置的相同php文件夹来源
在我的windows系统中,我在流动路径上有两个php.ini
文件:
C:'wamp'bin'php'phpx.y.z
C:'wamp'bin'apache'Apachex.y.z'bin
我不知道哪一个在你的路上。只要确保在两者中都添加扩展名,以消除任何疑问。
我在Mac OS X Yosemite上,我修复了这个错误
您的系统中缺少请求的PHP扩展mcrypt
通过运行以下命令:
brew update
brew upgrade
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
brew install php54-mcrypt
如果intl已经启用,但它不起作用,请在Path环境变量中添加PHP目录,然后重新启动服务器。(例如C:''Program Files''wamp''bin''php''phpX.XXX.XXX表示wamp)
它对我起了作用!
在Ubuntu、Debian和相关的Linux发行版上
sudo apt-get install php-intl
以安装默认PHP版本的扩展。对于其他版本,如果提供的版本正确,则apt-get install php7.3-intl
等变体将选择正确的扩展名。