调用未定义函数 Symfony\Polyfill\Mbstring\iconv_strlen()
Call to undefined function Symfony\Polyfill\Mbstring\iconv_strlen()
我的项目在本地主机上工作正常但不能联机工作,这是错误:
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
我用谷歌搜索了一下,发现我需要安装 PHP 扩展程序 iconv
。我正在使用 VPS 的问题,当我转到可用 PHP 扩展列表时,我没有找到此扩展!
提前致谢。
Symfony 为这种情况提供了 iconv-polyfill。只需将其作为要求添加到您的项目中,您应该没问题:
composer require symfony/polyfill-iconv
您使用的 PHP、 或 的过时版本也可能是在没有 iconv 的情况下编译的。
要检查,运行 php --ri iconv
使用任何 SSH 软件,如 Putty 等
如果它显示 扩展名 'iconv' 不存在。,您的问题出在 PHP。那么你有几个选择:
- 运行 php -v 检查你的 PHP 版本,必要时更新
- 或者用iconv
重新编译PHP
- 或者在 WHM/cPanel 上启用 iconv,如果你使用它们
- 或向您的托管公司寻求支持
我在安装 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());
顺便说一句
使用 MacPorts 安装扩展真的很容易,对于我的 PHP 5.6
我已经完成了:
$ sudo port install php56-mbstring
这是您问题的解决方案(命令行适用于 CentOS):
已解决:如果您使用的是 Cpanel/WHM STACK,请按照以下步骤操作:
转到 WHM >> EasyApache4 >> 当前安装的软件包 >> 自定义
现在 Select php extensions 并搜索 iconv 和 debug 安装它们并尝试再次安装..享受 :)
如果您在 CentOS 7 操作系统上使用 WHM,您在控制台输入 "composer" 时会遇到类似这样的错误:
致命错误:未捕获错误:调用 phar:///opt/cpanel/composer/bin/composer/vendor/symfony/polyfill-mbstring/Mbstring.php:661 中的未定义函数 Symfony\Polyfill\Mbstring\iconv()
堆栈跟踪:
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",然后单击 "Customize"。你可以在图片中看到
EasyApache 4
Select PHP 扩展,在搜索中输入 "iconv" 并检查将用于安装 iconv 包的 php 版本。见图片
PHP Extensions
选择评论
Review
单击提供
Provision
要确保安装了 iconv 包,如果结果如图所示,您可以使用此命令 "php --ri iconv"。那么 iconv 包就成功了。尝试再次输入作曲家,这样您就不会再收到任何错误
php --ri iconv
我的项目在本地主机上工作正常但不能联机工作,这是错误:
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
我用谷歌搜索了一下,发现我需要安装 PHP 扩展程序 iconv
。我正在使用 VPS 的问题,当我转到可用 PHP 扩展列表时,我没有找到此扩展!
提前致谢。
Symfony 为这种情况提供了 iconv-polyfill。只需将其作为要求添加到您的项目中,您应该没问题:
composer require symfony/polyfill-iconv
您使用的 PHP、 或 的过时版本也可能是在没有 iconv 的情况下编译的。
要检查,运行 php --ri iconv
使用任何 SSH 软件,如 Putty 等
如果它显示 扩展名 'iconv' 不存在。,您的问题出在 PHP。那么你有几个选择:
- 运行 php -v 检查你的 PHP 版本,必要时更新
- 或者用iconv 重新编译PHP
- 或者在 WHM/cPanel 上启用 iconv,如果你使用它们
- 或向您的托管公司寻求支持
我在安装 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());
顺便说一句
使用 MacPorts 安装扩展真的很容易,对于我的 PHP 5.6
我已经完成了:
$ sudo port install php56-mbstring
这是您问题的解决方案(命令行适用于 CentOS):
已解决:如果您使用的是 Cpanel/WHM STACK,请按照以下步骤操作: 转到 WHM >> EasyApache4 >> 当前安装的软件包 >> 自定义
现在 Select php extensions 并搜索 iconv 和 debug 安装它们并尝试再次安装..享受 :)
如果您在 CentOS 7 操作系统上使用 WHM,您在控制台输入 "composer" 时会遇到类似这样的错误:
致命错误:未捕获错误:调用 phar:///opt/cpanel/composer/bin/composer/vendor/symfony/polyfill-mbstring/Mbstring.php:661 中的未定义函数 Symfony\Polyfill\Mbstring\iconv() 堆栈跟踪:
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",然后单击 "Customize"。你可以在图片中看到
EasyApache 4
Select PHP 扩展,在搜索中输入 "iconv" 并检查将用于安装 iconv 包的 php 版本。见图片
PHP Extensions
选择评论
Review
单击提供
Provision
要确保安装了 iconv 包,如果结果如图所示,您可以使用此命令 "php --ri iconv"。那么 iconv 包就成功了。尝试再次输入作曲家,这样您就不会再收到任何错误
php --ri iconv