我的项目在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扩展列表时,我没有找到这个扩展名!
Thnx提前。
答案 0 :(得分:18)
Symfony为这样的案例提供了iconv-polyfill。只需将其作为需求添加到您的项目中,您应该没问题:
composer require symfony/polyfill-iconv
答案 1 :(得分:6)
您可能还会使用过时版本的PHP,或在没有iconv的情况下编译的版本。
要检查这一点,请使用任何SSH软件(如Putty等)运行php --ri iconv
如果显示 Extension' iconv'不存在。 ,您的问题是在PHP中。然后你有几个选择:
答案 2 :(得分:4)
答案 3 :(得分:1)
已解决:如果您使用的是 Cpanel / WHM STACK ,请按照以下步骤操作: 转到WHM >> EasyApache4 >>当前安装的软件包>>自定义
现在选择 php扩展,并搜索 iconv 和 debug 并安装它们,然后尝试重新安装。 >
答案 4 :(得分:1)
如果将WHM与CentOS 7操作系统一起使用,则在控制台上键入“ composer”时会遇到类似这样的错误:
致命错误:未捕获错误:在phar:///opt/cpanel/composer/bin/composer/vendor/symfony/polyfill-mbstring/Mbstring.php中调用未定义的函数Symfony \ Polyfill \ Mbstring \ iconv(): 661 堆栈跟踪:
0 phar:///opt/cpanel/composer/bin/composer/vendor/symfony/polyfill-mbstring/bootstrap.php(48):Symfony \ Polyfill \ Mbstring \ Mbstring :: mb_strwidth('help',' ASCII')
......
解决方案是使用WHM安装iconv软件包:
输入您的WHM,然后键入“ EasyApache 4”,然后单击“ EasyApache 4”,然后单击“自定义”。您可以在图片中看到
选择PHP Extensions,在搜索中键入“ iconv”,然后检查将用于安装iconv软件包的php版本。在图片中看到
选择评论
点击设置
要确保已安装iconv软件包,如果结果如图所示,则可以使用此命令“ php --ri iconv”。那么iconv软件包就成功了。尝试再次输入作曲家,这样您就不会再出现任何错误
答案 5 :(得分:0)
当我安装Mbstring扩展但没有重启Apache时,我收到了同样的错误消息。
所需要的只是做
$ sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart
是的,我这里有很长的路,但这只适合我。这是因为我使用MacPorts
要查找您的Apache位置,请使用
$ ps ax | grep apache
P.S。
我也没有安装iconv
分机。在列表中,当我像这样调用php信息时,它没有列出:
die(phpinfo());
BTW
使用MacPorts安装扩展程序非常简单,对于我的PHP 5.6
我只做了:
$ sudo port install php56-mbstring