40

我正在尝试在 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 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 已被禁用(现在)。

我该如何解决?

4

7 回答 7

73

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

安装

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

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


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

yum install php-mbstring

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

于 2009-08-01T10:03:23.803 回答
23

对于 Debian/Ubuntu:

sudo apt-get install php7.0-mbstring

于 2016-10-27T05:54:44.077 回答
5

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

改变这个

;extension=php_mbstring.dll

对此

extension=php_mbstring.dll

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

于 2018-12-27T07:24:02.337 回答
4

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

于 2015-10-06T06:51:27.197 回答
2

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

于 2020-06-07T16:29:38.530 回答
2

对于 ubuntu 中的 php 5.6

sudo apt install php5.6-mbstring

重启 Apache2

sudo systemctl restart apache2
于 2021-08-23T14:07:41.410 回答
0

对于 OpenSUse(zypper 包管理器):

zypper install php5-mbstring

和:

zyper install php7-mbstring

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

请注意,您必须重新启动 apache http 服务器:

systemctl restart apache2.service
于 2017-02-16T21:34:29.887 回答