【问题标题】:Call to undefined function FOS\UserBundle\Util\mb_convert_case()调用未定义函数 FOS\UserBundle\Util\mb_convert_case()
【发布时间】:2012-10-05 08:16:31
【问题描述】:

我遇到了错误

Call to undefined function FOS\UserBundle\Util\mb_convert_case() app_path/vendor/bundles/FOS/UserBundle/Util/Canonicalizer.php on line 18

当我尝试加载固定装置时发生。

第一步是安装mbstring.so ext,所以我用

编译了php
--enable-mbstring

比成功编译mbstring ext

phpize
./configure
make
make install

并添加

extension=mbstring.so

到我的 php.ini 文件。不幸的是,我仍然收到该错误,并且 php -m 没有将 mbstring 显示为加载的扩展名。怎么了?

任何帮助将不胜感激。

PHP 5.4.7,Debian Lenny

来自 php check.php 输出

[[WARNING]] Checking that the mb_strlen() function is available: FAILED
            *** Install and enable the mbstring extension ***

【问题讨论】:

  • 改完后有没有重启httpd?并查看http的错误日志和php错误日志
  • 我做到了。您评论的第二部分给了我一个线索:PHP Startup: Invalid library (maybe not a PHP library) 'mbstring.so' in Unknown on line 0。可能我需要再编译一次。
  • 你还有什么理由留在 Lenny 上吗?或者你有什么理由从源代码构建它?
  • 这一次我别无选择,我必须和莱尼斗争。我正在从源代码构建它,因为现在这是为 Lenny 获取新版本的 php 和其他版本的唯一方法。无论如何,从源代码再次编译它是有效的,我现在不知道为什么它没有更早。谢谢你的建议:)
  • 您是否尝试过dotdeb.org 用于PHP 和相关模块的Lenny 二进制文件?他还收到了一份收据(请参阅他们的常见问题解答自述文件 - 不记得了),以防您没有所需的收据。

标签: php symfony debian mbstring


【解决方案1】:

如果您使用的是 Windows,请尝试在 php.ini 中使用完整路径设置扩展名,例如:extension="/FULL/PATH/mbstring.so"。在其他情况下,您需要将 mbstring.so 文件放在模块目录中(所有其他 .so 所在的位置)。

【讨论】:

    【解决方案2】:

    例如,在 CentOS 上,您需要安装这个 php 模块:

    yum install php-mbstring
    

    写在https://stackoverflow.com/a/1216284/2071028

    【讨论】:

      【解决方案3】:

      在 debian 上,安装模块 php-mbstring

      apt-get install php-mbstring
      

      必要时重启apache2

      service apache2 restart
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-05
        • 1970-01-01
        • 2013-09-15
        • 1970-01-01
        • 2015-12-05
        • 2016-07-22
        • 2014-07-24
        • 2013-06-28
        相关资源
        最近更新 更多