无法调用内置的mb_internal_encoding方法?

Nie*_*jes 31 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
Run Code Online (Sandbox Code Playgroud)

通过Apache通过http调用此脚本时出现相同的错误.现在根据PHP手册,mb_internal_encoding函数应该是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
Run Code Online (Sandbox Code Playgroud)

我仔细检查过:selinux已被禁用(暂时).

我该如何解决?

Pas*_*TIN 63

mbstring是一个"非默认"扩展,默认情况下不启用; 请参阅手册的这一页:

安装

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

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


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

yum install php-mbstring
Run Code Online (Sandbox Code Playgroud)

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

  • 对于Ubuntu,可以使用“ apt install php-mbstring”,然后使用“ systemctl restart apache2”重启apache。 (2认同)

小智 20

对于Debian/Ubuntu:

sudo apt-get install php7.0-mbstring


Ser*_*man 5

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

改变这个

;extension=php_mbstring.dll
Run Code Online (Sandbox Code Playgroud)

对此

extension=php_mbstring.dll
Run Code Online (Sandbox Code Playgroud)

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