php - tokenizer - Error fatal: llamada a la función no definida mb_detect_encoding()
the mbstring extension is missing. please check your php configuration. (11)
Recibo este error después de intentar configurar LAMP siguiendo este tutorial , y me encuentro recibiendo el error anterior después de intentar configurar phpmyadmin.
Error fatal: llamada a la función no definida mb_detect_encoding () en C: / WebServer / Apache / htdocs / phpmyadmin / libraries / php-gettext / gettext.inc en la línea 177
Seguí el consejo aquí: Error fatal de PHP al intentar acceder a phpmyadmin mb_detect_encoding , e hice esos cambios.
Cuando ejecuto phpinfo()
, veo que la compatibilidad con MySQL y mb_string
está habilitada como se muestra a continuación:
Cuando abrí mi archivo php.ini, la línea "extension_dir" se veía como la siguiente:
extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"
que cambié a:
extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"
Y funcionó.
El problema también podría ser que Apache no puede encontrar php.ini si configura PHPIniDir de manera incorrecta. El mío estaba configurado para: PHPIniDir "c: / php7" Pero, la carpeta es en realidad solo "php" La pista estaba viendo phpinfo () Lo que mostraba: Configuration File (php.ini) Path C: / windows
En Windows / WAMP no parece haber ninguna dependencia de php_mbstring.dll en la extensión GD2, las extensiones de MySQL, ni en dlls / libs externos:
deplister.exe ext/php_mbstring.dll
php5ts.dll,OK
MSVCR110.dll,OK
KERNEL32.dll,OK
deplister.exe ext/php_gd2.dll
php5ts.dll,OK
USER32.dll,OK
GDI32.dll,OK
KERNEL32.dll,OK
MSVCR110.dll,OK
Independientemente de lo que php_mbstring ya necesite, está incorporado (está compilado estáticamente en el DLL).
Llamada a la función indefinida mb_detect_encoding ()
Este error también es muy específico y determinista ...
La función mb_detect_encoding()
no falló porque php_gd, php_mysql, php_mysqli u otra extensión no se cargaron; simplemente NO fue encontrado.
Supongo que todas las respuestas que se informan como válidas (para Windows / WAMP), que dicen cargar otras extensiones, para cambiar las rutas php.ini extension_dir
(si esta era incorrecta para empezar, NO se cargarían extensiones), etc., trabaje más debido a a) para no comentar la línea extension = php_mbstring.dll
, ob) reiniciar Apache o la computadora (para que los cambios surtan efecto).
En Windows, la mayoría de las veces el problema es que php_mbstring.dll es:
Bloqueado por Windows. Desbloquee haciendo clic derecho, marque Propiedades.
O PHP no puede cargar php_mbstring.dll debido a que se carga otra versión (por ejemplo, de algunas DLL de PHP incorrectas instaladas en C: / Windows / system32), algunas versiones no coinciden, faltan DLL de tiempo de ejecución, etc. Compruebe el error de Apache y PHP archivos de registro primero para pistas.
Aquí encontrará más información en profundidad: Llamada a la función no definida mb_detect_encoding
En Windows, abra el archivo php.ini y realice estos cambios:
Elimine el comentario y apunte al directorio ext
; extension_dir = "./" -> extension_dir = "C: / Php / ext"
Eliminar el comentario de estas extensiones
- extension = php_mbstring.dll
- extension = php_mysqli.dll
Reinicie el servicio apache
httpd -k reiniciar
Espero que esto ayude a algunas personas, obtuve este error cuando agregué la ruta de acceso y la extensión a "raíz_creciente_crecedo" "docref_ext" en mi archivo php.ini, luego lo comenté y estuvo bien, pero no puedo obtener mi ayuda para trabajar ahora.
Hay una manera mucho más fácil que recompilar PHP. Simplemente yum instala la biblioteca mbstring requerida:
Ejemplo: Cómo instalar PHP mbstring en CentOS 6.2
yum --enablerepo=remi install php-mbstring
Ah, y no te olvides de reiniciar Apache después.
Instale la biblioteca gd también.
revise este enlace http://www.php.net/manual/en/mbstring.installation.php
Mbstring es una extensión no predeterminada. Esto significa que no está habilitado por defecto. Debe habilitar explícitamente el módulo con la opción de configuración.
En caso de que tu versión de php sea 7.0:
sudo apt-get install php7.0-mbstring
sudo service apache2 restart
En caso de que tu versión de php sea 5.6:
sudo apt-get install php5.6-mbstring
sudo service apache2 restart
Para fedora:
yum install php-mbstring
Luego reinicia apache
Tuve el mismo problema con Ubuntu 17, Ispconfig
no estaba procesando las operaciones en cola de ningún tipo y tampoco el comando server.sh
no funcionaba. Revisé y la versión de PHP en ejecución después de la actualización del sistema operativo fue 7.1, por lo que la solución fue escribir:
apt-get install php7.1-mbstring
y ahora está todo bien
debe usar solo la versión en inglés de phpmyadmin si está utilizando todos los idiomas, debe habilitar todos los idiomas mbstring en el archivo php.in ..... solo busque mbstring en php.in