安装 Symfony 2.4.1 lib-icu 4.4 依赖项的问题

Posted

技术标签:

【中文标题】安装 Symfony 2.4.1 lib-icu 4.4 依赖项的问题【英文标题】:Problems installing Symfony 2.4.1 lib-icu 4.4 dependency 【发布时间】:2014-01-27 04:58:25 【问题描述】:

我遇到了与 this one 相同的问题,但那里提供的解决方案对我不起作用。

我从the Symfony Downloads Page 下载了带有供应商的 Symfony 2.4.1 标准供应商包。提取文件并下载 composer.phar 后,我运行 php composer.phar install 并收到此错误:

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - symfony/icu v1.2.0 requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
    - symfony/icu v1.2.0 requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
    - Installation request for symfony/icu v1.2.0 -> satisfiable by symfony/icu[v1.2.0].

按照上面链接的线程上的说明,我更新了 PEAR 库并执行了sudo pear install pecl/intl。 (这是在 CentOS 上,所以我没有遵循 MAMP 的东西)。这没有用,我意识到我必须做一个sudo yum install libicu。在此之后,sudo pear install pecl/intl 工作,我编辑php.ini 添加extension=intl.so 行,然后重新启动 Apache 服务器。

但我仍然遇到与上述相同的错误,此外,每当我运行 PHP 时,它都会发出警告:

PHP Warning:  Module 'intl' already loaded in Unknown on line 0

查看phpinfo() 的输出,我看到安装的intl 版本是1.1.0,ICU 版本是4.2.1(这解释了为什么Symfony 抱怨它需要4.4)。但是当我这样做时/usr/bin/pecl install intl 它说

pecl/intl is already installed and is the same as the released version 3.0.0

而且sudo yum install libicu 应该已经安装了最新版本。

有什么办法可以得到4.4版本的吗?

【问题讨论】:

【参考方案1】:

针对您的具体情况,您应该在您的 composer.json 文件中指定您要使用“symfony/icu”:“1.1.*”

请参阅本页的“ICU 和部署问题”部分:https://symfony.com/doc/2.4/components/intl.html

【讨论】:

谢谢,该页面有帮助。 抱歉,如果这不是此反馈的地方,但我找不到其他地方可以放置它。有人建议将链接更新到我通常同意的当前文档,但在这种情况下,问题是特定于某个 symfony 范围的(这些部署问题仅影响以下 Symfony 版本:2.3.0 到 2.3。 20 个版本,任何 2.4.x 版本和 2.5.0 到 2.5.5 版本)并且不适用于“当前”。如果您转到文档的“当前”版本,则此答案中提到的“ICU 和部署问题”不存在。 这里是原始链接,其中包括解释为什么这个解决方案有效:symfony.com/doc/2.4/components/intl.html【参考方案2】:

您正在编辑错误的 php.ini 文件

在控制台中运行这个命令:

php -i | grep php.ini

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

编辑该文件。 (这是 php cli 文件)

【讨论】:

没有/etc/php5 目录。有/etc/php.ini(我编辑的文件)和一个包含这些文件的/etc/php.d目录:curl.ini fileinfo.ini json.ini mysqli.ini pdo.ini pdo_sqlite.ini sqlite3.ini xmlreader.ini xsl.ini dom.ini intl.ini mbstring.ini mysql.ini pdo_mysql.ini phar.ini wddx.ini xmlwriter.ini zip.ini你说运行的命令给出了这个:Configuration File (php.ini) Path => /etc Loaded Configuration File => /etc/php.ini

以上是关于安装 Symfony 2.4.1 lib-icu 4.4 依赖项的问题的主要内容,如果未能解决你的问题,请参考以下文章

Windows 安装 Symfony 2.2 框架 - 安装成功 !!

安装 Symfony2

无法在 Windows 上安装 symfony

初识Symfony4--安装symfony

无法使用 Symfony 5 安装 FOSRestBundle

Symfony安装及使用