无法调用内置的mb_internal_encoding方法?

时间:2009-08-01 09:56:09

标签: php mbstring

我正在尝试在CentOS 5.3 VMware'盒子上安装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 manual the mb_internal_encoding function应该是PHP 5内置的。

我有CentOS 5.3 i386(Linux代码2.6.18-53.1.21.el5#1 SMP Tue May 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已被禁用(暂时)。

我该如何解决这个问题?

6 个答案:

答案 0 :(得分:62)

mbstring是“非默认”扩展名,默认情况下不启用;请参阅手册的this page

  

<强>安装

     

mbstring是非默认扩展名。   这意味着它未启用   默认。您必须明确启用   带有configure选项的模块。   有关详细信息,请参阅“安装”部分

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


我不使用CentOS,但您可能必须首先安装扩展程序,使用类似的内容(例如,请参阅this page,这似乎可以提供解决方案)

yum install php-mbstring

(包名可能有点不同;所以,使用yum搜索得到它:-))

答案 1 :(得分:19)

对于Debian / Ubuntu:

sudo apt-get install php7.0-mbstring

答案 2 :(得分:4)

如果有人在ubuntu中安装php-mbstring软件包时遇到问题,请执行以下操作 sudo apt-get install libapache2-mod-php5

答案 3 :(得分:2)

如果您不知道如何在Windows中启用php_mbstring扩展名,请打开php.ini并删除扩展名前的分号:

更改此

;extension=php_mbstring.dll

对此

extension=php_mbstring.dll

修改后,您需要重置php服务器。

答案 4 :(得分:0)

对于OpenSUse(zypper包管理器):

zypper install php5-mbstring

zyper install php7-mbstring

另一方面,您可以通过YaST软件管理器进行搜索。

请注意,您必须重启apache http server:

systemctl restart apache2.service

答案 5 :(得分:0)

apt-get install php7.3-mbstring解决了ubuntu上的问题,php版本是php-fpm 7.3