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:
Installez également la bibliothèque Gd.
vérifiez ce lien http://www.php.net/manual/fr/mbstring.installation.php
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.
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
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
Redémarrez le service Apache
httpd -k redémarrer
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é.
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
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
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
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
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.
Pour Fedora:
yum install php-mbstring
Puis redémarrez Apache