【问题标题】:intl extension should be available symfony国际扩展名应该是可用的 symfony
【发布时间】:2017-08-18 06:59:57
【问题描述】:

现在,如果我转到 http://localhost:8000/config.php,它会告诉我:安装并启用 intl 扩展(用于验证器)。

所以我做的是:

检查了/etc/php/7.0/cli/php.ini 具有;extension=php_intl.dll 的文件

composer.json中安装symfony/intl

并且仍然得到安装和启用 intl 扩展的建议。

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    确保您已激活extension=php_intl.dll in:

    /etc/php/7.0/apache2/php.ini
    //           ^^^^^^^
    

    另外,通过删除 分号

    取消注释您的扩展程序来启用您的扩展程序

    Loading an extension

    加载 PHP 扩展最常用的方法是将其包含在您的 php.ini 配置文件。请注意,许多扩展是 已经存在于您的 php.ini 中并且您只需要删除 分号来激活它们。

    ;extension=php_extname.dll

    extension=php_extname.dll

    之后,你需要重启你的 apache2

    sudo service apache2 restart
    

    更新(将上面的部分保留):-

    您似乎正在使用基于 linux 的系统,特别是 debian/ubuntu dist,并尝试使用 Windows OS 样式激活 php 扩展

    在 debian/ubuntu 中安装 php intl:

    对于 php 5:

    sudo apt-get install php5-intl
    

    对于 php 7:

    sudo apt-get install php7.0-intl
    

    然后只需通过以下方式启用您的扩展:

    sudo php5enmod intl
    

    或者对于 php7:

    sudo phpenmod intl
    

    然后重启你的 apache

    sudo service apache2 restart
    

    【讨论】:

    • @JustinTime:澄清为什么需要/apache2/ 而不是/cli//cli/ 用于 CLI PHP 程序(命令行界面),/apache2/ 用于 PHP 插件由 Apache(网络服务器)使用。
    • 啊,我这样做了,现在当我启动我的服务器时,我收到错误:PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20151012/php_intl.dll' - /usr/lib/php/20151012/php_intl.dll:无法打开共享对象文件:在第 0 行的未知中没有这样的文件或目录
    • 现在我收到一条警告,提示您系统上安装的 intl ICU 版本已过时 (55.1),并且与 Symfony (58.2) 捆绑的 ICU 数据不匹配。我认为它现在可以工作了,非常感谢你和@TomUdding!
    【解决方案2】:

    您应该从;extension=php_intl.dll 中删除分号。就像现在一样;它被注释掉并将被忽略。这意味着它不会启用 php_intl.dll 作为扩展。

    您可以查看this example(php.ini 文档)了解更多信息。

    【讨论】:

    • @JustinTime 你重新开始安装了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2014-06-20
    • 2019-05-24
    • 2021-09-01
    • 2018-03-26
    • 2010-11-29
    • 2012-09-05
    相关资源
    最近更新 更多