¿No puede llamar al método integrado mb_internal_encoding?

3 minutos de lectura

avatar de usuario
niels basjes

Estoy tratando de instalar indefero en una ‘caja’ de VMware CentOS 5.3 y me encontré con un problema. Bastante temprano en la instalación, aparece un error que he podido reducir a esto:

[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

Recibo el mismo error al llamar a este script a través de http a través de Apache. Ahora según el PHP manual la función mb_internal_encoding debería estar integrado en PHP 5.

Tengo CentOS 5.3 i386 (código de Linux 2.6.18-53.1.21.el5 #1 SMP martes 20 de mayo 09:34:18 EDT 2008 i686 i686 i386 GNU/Linux) y he instalado 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

Verifiqué dos veces: selinux ha sido deshabilitado (por ahora).

¿Cómo puedo solucionar esto?

  • ¿Está realmente integrado? Llamar php-m para obtener una lista de los módulos integrados.

    – VolkerK

    1 de agosto de 2009 a las 10:36

mbstring es una extensión “no predeterminada”, que no está habilitada de forma predeterminada; ver esta página del manual:

Instalación

mbstring es una extensión no predeterminada. Esto significa que no está habilitado de forma predeterminada. Debe habilitar explícitamente el módulo con la opción de configuración. Vea la sección de Instalación para más detalles

Entonces, es posible que deba habilitar esa extensión, modificando el archivo php.ini (y reiniciando Apache, para que se tenga en cuenta su modificación)

No uso CentOS, pero es posible que primero deba instalar la extensión, usando algo como esto (ver esta páginapor ejemplo, que parece dar una solución) :

yum install php-mbstring

(El nombre del paquete puede ser un poco diferente; por lo tanto, use la búsqueda de yum para obtenerlo :-))

  • después de instalar yum php-mbstring, ¿hay algo que deba hacer después de eso? Intenté reiniciar apachectl pero no hubo dados

    – relipse

    19 mayo 2016 a las 16:16

  • yum install php70w-mbstring para php7 y sí necesita un reinicio apachectl restart

    -Louis Loudog Trottier

    20 de mayo de 2017 a las 5:35


  • Para Ubuntu, uno puede usar apt install php-mbstring y luego, por supuesto, reinicie apache con systemctl restart apache2

    – Piyin

    16 de noviembre de 2017 a las 1:59

  • @PascalMARTIN me funciona… pero no puedo reiniciar el servidor apache en centos. por favor ayuda.

    – Ayyappa amara

    27 de diciembre de 2017 a las 12:21


avatar de usuario
Akikon

Para Debian/Ubuntu:

sudo apt-get install php7.0-mbstring

  • sudo apt-get install php-mbstring en distribuciones más recientes.

    – azul112

    3 de diciembre de 2020 a las 23:02

Si no sabe cómo habilitar la extensión php_mbstring en Windows, abra su php.ini y elimine el punto y coma antes de la extensión:

cambia esto

;extension=php_mbstring.dll

a esto

extension=php_mbstring.dll

después de la modificación, debe restablecer su servidor php.

Si alguien tiene problemas con la instalación php-mbstring paquete en ubuntu hacer lo siguiente

sudo apt-get install libapache2-mod-php5

apt-get install php7.3-mbstring resolvió el problema en ubuntu, la versión de php es php-fpm 7.3

avatar de usuario
Luis Cordero

Para php 5.6 en ubuntu

sudo apt install php5.6-mbstring

Reiniciar Apache2

sudo systemctl restart apache2

avatar de usuario
Mostafá

Para OpenSUse (administrador de paquetes zypper):

zypper install php5-mbstring

y:

zyper install php7-mbstring

Por otro lado, puede buscarlos a través del administrador de software YaST.

Tenga en cuenta que debe reiniciar el servidor http de apache:

systemctl restart apache2.service

¿Ha sido útil esta solución?