Unable to call the built in mb_internal_encoding method?

谁都会走 提交于 2019-11-27 17:09:03

问题


I'm trying to install indefero on a CentOS 5.3 VMware 'box' and I ran into a problem. Quite early in the installation I get an error that I've been able to narrow down to this:

[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

I get the same error when calling this script via http through Apache. Now according to the PHP manual the mb_internal_encoding function should be a builtin in PHP 5.

I have CentOS 5.3 i386 (Linux code 2.6.18-53.1.21.el5 #1 SMP Tue May 20 09:34:18 EDT 2008 i686 i686 i386 GNU/Linux) and I've installed 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

I double checked: selinux has been disabled (for now).

How do i fix this?


回答1:


mbstring is a "non-default" extension, that is not enabled by default ; see this page of the manual :

Installation

mbstring is a non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option. See the Install section for details

So, you might have to enable that extension, modifying the php.ini file (and restarting Apache, so your modification is taken into account)


I don't use CentOS, but you may have to install the extension first, using something like this (see this page, for instance, which seems to give a solution) :

yum install php-mbstring

(The package name might be a bit different ; so, use yum search to get it :-) )




回答2:


For Debian/Ubuntu:

sudo apt-get install php7.0-mbstring




回答3:


If someone is having trouble with installing php-mbstring package in ubuntu do following sudo apt-get install libapache2-mod-php5




回答4:


If you don't know how to enable php_mbstring extension in windows, open your php.ini and remove the semicolon before the extension:

change this

;extension=php_mbstring.dll

to this

extension=php_mbstring.dll

after modification, you need to reset your php server.




回答5:


For OpenSUse (zypper package manager):

zypper install php5-mbstring

and:

zyper install php7-mbstring

In the other hand, you can search them through YaST Software manager.

Note that, you must restart apache http server:

systemctl restart apache2.service


来源:https://stackoverflow.com/questions/1216274/unable-to-call-the-built-in-mb-internal-encoding-method

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!