web-dev-qa-db-fra.com

Appel de la fonction non définie Symfony\Polyfill\Mbstring\iconv_strlen ()

Mon projet fonctionne bien sur localhost mais ne fonctionne pas en ligne et c'est l'erreur:

Fatal error: Call to undefined function Symfony\Polyfill\Mbstring\iconv_strlen() in /home/stram/public_html/vendor/symfony/polyfill-mbstring/Mbstring.php on line 338

Je l'ai googlé et j'ai constaté que je devais installer l'extension PHP iconv. Le problème que j'utilise un VPS et quand je suis allé à la liste des extensions disponibles PHP, je n'ai pas trouvé cette extension!

 enter image description here
 enter image description here
 enter image description here

Merci d'avance.

7
SlimenTN

Symfony fournit un iconv-polyfill pour de tels cas. Il suffit de l’ajouter comme exigence à votre projet et tout devrait bien se passer:

composer require symfony/polyfill-iconv
17
Michael Hirschler

Il se peut également que vous utilisiez une version obsolète de PHP, ou, compilée sans iconv.

Pour vérifier cela, lancez php --ri iconv avec n’importe quel logiciel SSH, comme PuTTY, etc.

Si Extension 'iconv' n'est pas présent., Votre problème est en PHP. Ensuite, vous avez quelques options:

  • Exécutez php -v pour vérifier votre version de PHP et mettez-la à jour si nécessaire
  • Ou compiler à nouveau PHP avec iconv
  • Ou activez iconv sur WHM/cPanel, si vous les utilisez
  • Ou demandez de l'aide à votre hébergeur
6
Lucas Bustamante

Voici une solution à votre problème (la ligne de commande concerne CentOS):

 EasyApache

4
yasin

J'ai eu le même message d'erreur lorsque j'ai installé l'extension Mbstring mais je n'ai pas redémarré Apache.

Tout ce qu'il faut c'est faire

$ Sudo /opt/local/etc/LaunchDaemons/org.macports.Apache2/Apache2.wrapper restart

Oui, j'ai un long chemin ici, mais c'est juste pour moi. C'est parce que j'utilise MacPorts

Pour trouver votre emplacement Apache, utilisez

$ ps ax | grep Apache 

P.S. 

Je n'ai pas l'extension iconv installée aussi. À la liste, il n'apparaît pas dans la liste lorsque j'appelle php info comme ceci: 

die(phpinfo()); 

BTW 

c'est vraiment facile d'installer l'extension avec MacPorts, Pour mon PHP 5.6 je viens de faire:

$ Sudo port install php56-mbstring
0

Résolu: Si vous utilisez Cpanel/WHM STACK suivez alors: Allez à WHM >> EasyApache4 >> Paquets actuellement installés >> personnaliser

Maintenant, sélectionnez extensions php et recherchez iconv et debug installez-les tous les deux et essayez de les réinstaller .. profiter :)

0