调用未定义的函数Symfony \ Polyfill \ Mbstring \ iconv_strlen()

问题描述 投票:10回答:5

我的项目在localhost上工作正常,但没有在线工作,这是错误:

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

我google了它,我发现我需要安装PHP扩展iconv。我正在使用VPS的问题,当我进入可用的PHP扩展列表时,我没有找到这个扩展! enter image description here enter image description here enter image description here

提前致谢。

php symfony vps iconv
5个回答
20
投票

Symfony为这样的案例提供了iconv-polyfill。只需将其作为需求添加到您的项目中,您应该没问题:

composer require symfony/polyfill-iconv

6
投票

您可能还会使用过时的PHP版本,或者使用没有iconv编译的版本。

要检查这一点,请使用任何SSH软件运行php --ri iconv,例如Putty等。

如果它显示扩展'iconv'不存在。,您的问题是在PHP中。那你有几个选择:

  • 运行php -v检查您的PHP版本,并在必要时进行更新
  • 或者用iconv再次编译PHP
  • 或者在WHM / cPanel上启用iconv(如果使用它们)
  • 或者向您的托管公司寻求支持

4
投票

以下是您的问题的解决方案(命令行适用于CentOS):

EasyApache


1
投票

解决:如果你正在使用Cpanel / WHM STACK,请按照:转到WHM >> EasyApache4 >>当前安装的包>>定制

现在选择php扩展并搜索iconv并调试安装它们并尝试再次安装..享受:)


0
投票

当我安装Mbstring扩展但没有重启Apache时,我有相同的错误消息。

所需要的只是做

$ sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart

是的,我在这里有很长的路,但它只适合我。这是因为我使用MacPorts

要找到您的Apache位置使用

$ ps ax | grep apache 

附:

我也没有安装iconv扩展。在列表中,当我调用php信息时,它没有列出:

die(phpinfo()); 

BTW

使用MacPorts安装扩展程序非常简单,对于我的PHP 5.6我只做了:

$ sudo port install php56-mbstring
© www.soinside.com 2019 - 2024. All rights reserved.