无法调用内置mb_internal_encoding方法?

2022-08-30 11:59:01

我试图在CentOS 5.3 VMware'box'上安装indefero,但我遇到了一个问题。在安装的早期,我收到一个错误,我已经能够缩小到这个范围:

[root@code /var/www/html]# cat x.php
 <?php
     mb_internal_encoding("UTF-8");
 ?>
[root@code /var/www/html]# php x.php
PHP Fatal error:  Call to undefined function mb_internal_encoding() in 
/var/www/html/x.php on line 2

通过Apache通过http调用此脚本时,我得到了相同的错误。现在根据PHP手册,mb_internal_encoding函数应该是PHP 5中的内置函数。

我有 CentOS 5.3 i386 (Linux 代码 2.6.18-53.1.21.el5 #1 SMP 星期二 20 09:34:18 EDT 2008 i686 i686 i386 GNU/Linux),我已经安装了 PHP 5.2.9。

[root@code /var/www/html]# php -v
PHP 5.2.9 (cli) (built: Jul  8 2009 06:03:36)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

我仔细检查了一下:selinux已被禁用(目前)。

我该如何解决这个问题?


答案 1

mbstring是一个“非默认”扩展,默认情况下不启用;请参阅手册的此页面

安装

mbstring 是一个非默认扩展名。这意味着默认情况下不启用它。必须使用配置选项显式启用模块。有关详细信息,请参阅安装部分

因此,您可能必须启用该扩展,修改php.ini文件(并重新启动Apache,以便考虑您的修改)


我不使用CentOS,但你可能必须首先安装扩展,使用类似这样的东西(例如,请参阅此页面,它似乎给出了解决方案):

yum install php-mbstring

(软件包名称可能有点不同;所以,使用yum搜索来获取它:-))


答案 2

对于 Debian/Ubuntu:

sudo apt-get install php7.0-mbstring


推荐