无法调用内置的 mb_internal_encoding 方法?
Posted
技术标签:
【中文标题】无法调用内置的 mb_internal_encoding 方法?【英文标题】:Unable to call the built in mb_internal_encoding method? 【发布时间】:2010-11-16 00:30:05 【问题描述】:我试图在 CentOS 5.3 VMware 'box' 上安装 indefero,但遇到了问题。 在安装的早期,我收到了一个错误,我可以将其范围缩小到:
[root@code /var/www/html]# cat x.php
<?php
mb_internal_encoding("UTF-8");
?>
[root@code /var/www/html]# php x.php
PHP Fatal error: Call to undefined function mb_internal_encoding() in
/var/www/html/x.php on line 2
通过 Apache 通过 http 调用此脚本时,我遇到了同样的错误。 现在根据PHP manual the mb_internal_encoding function 应该是 PHP 5 中的内置函数。
我有 CentOS 5.3 i386(Linux 代码 2.6.18-53.1.21.el5 #1 SMP Tue May 20 09:34:18 EDT 2008 i686 i686 i386 GNU/Linux)并且我已经安装了 PHP 5.2.9。
[root@code /var/www/html]# php -v
PHP 5.2.9 (cli) (built: Jul 8 2009 06:03:36)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
我再次检查:selinux 已被禁用(暂时)。
我该如何解决这个问题?
【问题讨论】:
真的是内置的吗?调用 php -m 获取内置模块列表。 【参考方案1】:对于 ubuntu 中的 php 5.6
sudo apt install php5.6-mbstring
重启 Apache2
sudo systemctl restart apache2
【讨论】:
【参考方案2】:apt-get install php7.3-mbstring
解决了ubuntu上的问题,php版本是php-fpm 7.3
【讨论】:
【参考方案3】:如果您不知道如何在 windows 中启用 php_mbstring 扩展,请打开您的 php.ini 并删除扩展前的分号:
改变这个
;extension=php_mbstring.dll
到这里
extension=php_mbstring.dll
修改后需要重置你的php服务器。
【讨论】:
【参考方案4】:对于 OpenSUse(zypper 包管理器):
zypper install php5-mbstring
和:
zyper install php7-mbstring
另一方面,您可以通过 YaST 软件管理器搜索它们。
注意,你必须重启apache http服务器:
systemctl restart apache2.service
【讨论】:
【参考方案5】:对于 Debian/Ubuntu:
sudo apt-get install php7.0-mbstring
【讨论】:
sudo apt-get install php-mbstring
在最近的发行版中。【参考方案6】:
如果有人在 ubuntu 中安装 php-mbstring
软件包时遇到问题,请执行以下操作
sudo apt-get install libapache2-mod-php5
【讨论】:
另外值得注意的是,如果使用 ondrej/php 存储库中的 php7.0,正确的包是 php7.0-mbstring。【参考方案7】:mbstring 是一个“非默认”扩展,默认情况下不启用;参见手册的this page:
安装
mbstring 是一个非默认扩展名。 这意味着它未被启用 默认。您必须明确启用 带有配置选项的模块。 有关详细信息,请参阅安装部分
因此,您可能必须启用该扩展,修改 php.ini 文件(并重新启动 Apache,因此您的修改会被考虑在内)
我不使用 CentOS,但您可能必须先安装扩展,使用类似这样的东西 (例如,请参阅 this page,这似乎提供了解决方案):
yum install php-mbstring
(包名可能有点不同;所以,使用 yum 搜索来获取它:-))
【讨论】:
在您执行 yum install php-mbstring 之后您需要做些什么吗?我试过 apachectl restart 但没有骰子yum install php70w-mbstring
for php7 是的,需要重启 apachectl restart
对于 Ubuntu,可以使用 apt install php-mbstring
,然后当然可以使用 systemctl restart apache2
重新启动 apache
@PascalMARTIN 它为我工作......但我无法重新启动 centos
中的 apache 服务器。请帮忙。以上是关于无法调用内置的 mb_internal_encoding 方法?的主要内容,如果未能解决你的问题,请参考以下文章