我正试图在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搜索得到它:-))
如果您不知道如何在 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服务器。