【问题标题】:The requested PHP extension intl is missing from your system (SonataAdminBundle) in Symfony2Symfony2 中的系统 (SonataAdminBundle) 中缺少请求的 PHP 扩展 intl
【发布时间】:2013-07-15 22:13:41
【问题描述】:

我尝试安装沙盒,但我从 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.

【问题讨论】:

  • 嗨,你在你的 php.ini 中激活了 intl 吗?
  • 在 Linux 上:安装了 php5-intl?
  • 是的,我在 php.ini 中激活了 intl

标签: php symfony intl


【解决方案1】:

正如错误所说,您需要在 php 中启用 intl 扩展。 在您的 php.ini 文件中,取消注释行 extension=ext/php_intl.dll 或类似的内容。

编辑:请注意,如果您使用 wamp 或类似的东西,您应该知道 wamp 配置中的 php.ini 文件不一定是 composer 使用的文件。

【讨论】:

  • 是的,我正在使用 WAMP,并且已经通过在 php.ini 中取消注释来启用 extension=ext/php_intl.dll 的国际扩展,但它仍然给我错误
  • 你有什么样的沼泽? WampServer ? uWamp ?
  • 看看这个,看看它是否能解决你的问题:stackoverflow.com/questions/16372888/…
【解决方案2】:

就像 @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.ini 中根本没有该行,所以我刚刚添加了它,但没有“ext/” => extension=php_intl.dll,它工作。
【解决方案3】:

首先确保您的服务器是 x86 版本(intl 不适用于 x64),然后:

  • 直接在php.ini中激活国际扩展
  • 将所有icu*.dll表单php目录复制到apache目录
  • 确保您的控制台使用您刚刚配置的相同 php 文件夹 source。

在我的 Windows 系统中,我在流动路径中有两个 php.ini 文件:

C:\wamp\bin\php\phpx.y.z
C:\wamp\bin\apache\Apachex.y.z\bin

我不知道哪一个在你的路上。只需确保在它们中添加扩展名即可消除任何疑问。

【讨论】:

    【解决方案4】:

    Linux 用户

    yum install php-intl
    

    【讨论】:

    • Ubuntu:sudo apt-get install php5-intl
    • 自制软件:brew install php55-intl
    • 在 Ubuntu 16.04 上使用 sudo apt-get install php-intl
    • Ubuntu:sudo apt-get install php5.6-intl
    【解决方案5】:

    我在 Mac OS X Yosemite 上,我修复了这个错误

    您的系统中缺少请求的 PHP 扩展 mcrypt

    通过运行以下命令:

    brew update
    brew upgrade
    brew tap homebrew/dupes
    brew tap josegonzalez/homebrew-php
    brew install php54-mcrypt
    

    【讨论】:

    • 您在 Mac OS X Yosemite 上使用 Xampp 还是 WAMPP
    【解决方案6】:

    我在安装新的 Magento 2.0 时遇到了同样的问题,经过不同的尝试和尝试,我设法通过以下步骤解决了它:

    我将所有 icu* 文件从 php 目录复制到 Appache 目录,并且成功了。

    php 目录:

    WAMP\bin\php\php5.5.12

    应用目录:

    WAMP\bin\apache\apache2.4.9

    确保在 php.ini 文件中取消注释以下行:

    extension=ext/php_intl.dll

    【讨论】:

      【解决方案7】:

      如果 intl 已经启用但它不起作用,请将 PHP 目录添加到 Path 环境变量中,然后重新启动服务器。 (例如 C:\Program Files\wamp\bin\php\phpX.XXX.XXX for wamp)

      它对我有用!

      【讨论】:

        【解决方案8】:

        在 Ubuntu、Debian 和相关的 Linux 发行版上

        sudo apt-get install php-intl
        

        安装默认 PHP 版本的扩展。 对于其他版本,如果提供的版本正确,apt-get install php7.3-intl 等变体将选择正确的扩展名。

        【讨论】:

        • 这不太准确,如果你的 repo 有 php 7.4 而你有 7.2 例如,它会安装 php 7.4-intl,更不用说不是每个人都在运行一个有 apt 的系统,甚至linux。
        猜你喜欢
        • 2014-04-15
        • 1970-01-01
        • 2017-12-07
        • 2017-12-10
        • 2016-06-20
        • 2020-06-14
        • 2018-05-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多