web-dev-qa-db-fra.com

Erreur fatale: appel de la fonction non définie mb_detect_encoding ()

Je reçois cette erreur après avoir essayé de configurer LAMP en suivant ce tutoriel , et je reçois le message ci-dessus après avoir essayé de configurer phpmyadmin.

Erreur fatale: appel de la fonction non définie mb_detect_encoding () dans C:\Serveur Web\Apache\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc à la ligne 177

J'ai suivi les conseils ici: PHP Erreur fatale lors de la tentative d'accès à phpmyadmin mb_detect_encoding , et j'ai apporté ces modifications. 

Lorsque j'exécute phpinfo(), je constate que la prise en charge de MySQL et de mb_string sont activés comme indiqué ci-dessous: 

mb_string

MySQL

mysqli

42
Louis93

Installez également la bibliothèque Gd.

vérifiez ce lien http://www.php.net/manual/fr/mbstring.installation.php

39
Jibu K

Il existe un moyen beaucoup plus simple que de recompiler PHP. Il suffit d’installer la librairie mbstring requise:

Exemple: Comment installer PHP mbstring sur CentOS 6.2

yum --enablerepo=remi install php-mbstring

Oh, et n'oubliez pas de redémarrer Apache après.

28
Phil LaNasa

Mbstring est une extension autre que celle par défaut. Cela signifie qu'il n'est pas activé par défaut. Vous devez explicitement activer le module avec l'option configure.

Si votre version de php est 7.0:

Sudo apt-get install php7.0-mbstring

Sudo service Apache2 restart

Si votre version php est 5.6:

Sudo apt-get install php5.6-mbstring

Sudo service Apache2 restart
8
BSB

Sous Windows, ouvrez le fichier php.ini et apportez les modifications suivantes:

Supprimer le commentaire et pointer vers le répertoire ext

; extension_dir = "./" -> extension_dir = "C:/Php/ext"

Supprimer le commentaire de cette extension

  • extension = php_mbstring.dll 
  • extension = php_mysqli.dll

Redémarrez le service Apache

httpd -k redémarrer

6
André Ribeiro

Quand j'ai ouvert mon fichier php.ini, la ligne "extension_dir" ressemblait à ceci:

extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"

que j'ai changé en:

extension_dir = "C:\wamp\bin\php\php5.4.16\ext\"

et cela a fonctionné.

3
abhishek shringi

Sous Windows/WAMP, il ne semble pas exister de dépendance de php_mbstring.dll à l'extension Gd2, aux extensions MySQL, ni aux dlls/libs externes:

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

Tout ce dont php_mbstring a déjà besoin, il est intégré (compilé de manière statique dans la DLL).

Appel de la fonction non définie mb_detect_encoding ()

Cette erreur est aussi très spécifique et déterministe ...

La fonction mb_detect_encoding() n'a pas échoué car php_Gd, php_mysql, php_mysqli ou une autre extension n'étaient pas chargés. il n'a tout simplement pas été trouvé.

Je suppose que toutes les réponses signalées comme valides (pour Windows/WAMP), c’est-à-dire pour charger d’autres extensions, pour changer les chemins php.ini extension_dir (si celle-ci était erronée, aucune extension ne se chargerait), etc, travaillez plus pour a) ne pas commenter la ligne extension = php_mbstring.dll, ou b) redémarrer Apache ou l’ordinateur (pour que les modifications prennent effet).

Sous Windows, la plupart du temps, le problème est que php_mbstring.dll est:

  • Bloqué par Windows. Débloquez-le en faisant un clic droit dessus, cochez Propriétés.

  • Ou PHP ne peut pas charger php_mbstring.dll en raison du chargement d'une autre version (par exemple, à partir de l'installation de DLL PHP inappropriées dans C:\Windows\system32), de l'incompatibilité des versions, des DLL d'exécution manquantes , etc. Consultez d'abord les fichiers du journal des erreurs d'Apache et de PHP pour obtenir des indices.

Réponse plus détaillée ici: Appel de la fonction non définie mb_detect_encoding

2
rightstuff

J'ai eu le même problème avec Ubuntu 17, Ispconfig ne traitait aucune opération mise en file d'attente et la commande server.sh ne fonctionnait pas . J'ai vérifié et la version en cours d'exécution PHP après la mise à niveau du système d'exploitation était 7.1 La solution consistait à taper:

apt-get install php7.1-mbstring

et maintenant tout va bien

1
daniele cocilova

Le problème pourrait également être qu'Apache ne peut pas trouver php.ini Si vous définissez PHPIniDir de façon incorrecte . Mine a été défini sur: PHPIniDir "c:/php7" " L’indice visionnait phpinfo () Ce qui montrait: Fichier de configuration (php.ini) Chemin C:\windows 

1
ironarm

vous devez utiliser uniquement la version anglaise de phpmyadmin si vous utilisez toutes les langues, vous devez activer toutes les langues mbstring dans le fichier php.in ..... il suffit de rechercher mbstring dans le php.in

1
user2615161

J'espère que cela aide quelques personnes, j'ai eu cette erreur quand j'ai ajouté le chemin et l'extension à "docref_root" "docref_ext" dans mon fichier php.ini, je l'ai ensuite commenté et tout s'est bien passé, mais mon aide ne fonctionne pas maintenant.

0
Vasko

Pour Fedora:

yum install php-mbstring

Puis redémarrez Apache

0
user3413723