无法使用PHP 7初始化mbstring

42
每当我尝试访问phpMyAdmin时,都会收到以下错误提示: "The mbstring extension is missing. Please check your PHP configuration." 我正在运行一个 Centos 7 服务器上的 LEMP 堆栈,并选择使用 PHP 7 进行安装。在之前运行较早版本的 PHP 的相同设置中,我没有遇到过这个错误。 extension_loaded('mbstring')返回false,即使mbstring.ini(/etc/php.d/)中包含此扩展。
; Enable mbstring extension module
extension=mbstring.so

我百分之百确定我的服务器上已经安装了mbstring模块。

我完全被卡住了,如果有任何想法,请告诉我。谢谢。


你看过 phpinfo(); 吗? - Andrea
1
@Andrea,它遵循主题,根本没有提到_mbstring_。 - NoahMCM
如果是这种情况,即mbstring未安装或无法正常工作。extension=不应该放在mbstring.ini中,我认为它应该放在php.ini中。 - Andrea
1
不,不能使用PHP 7。从php.ini文件中可以看到:“注意:打包的扩展模块现在通过目录/etc/php.d中找到的.ini文件加载;这些默认情况下会被加载。”@Andrea - NoahMCM
我在DigitalOcean上使用PHP8时遇到了这个问题。通过顶部答案解决了。我认为这是一个与版本无关的解决方案。 - HoldOffHunger
5个回答

86

对于那些使用Debian的用户:

 sudo apt-get install php7.0-mbstring
否则在 CentOS 中(已在 CentOS 6.6 上测试)。
sudo yum install php70w-mbstring

正如 @mpen 所说,你可以激活它。

sudo phpenmod mbstring

2
PS:可以通过 sudo phpenmod mbstring 启用。 - mpen
我需要重新启动Apache,命令为service httpd restart - David Refoua
11
对于 CentOS 7 + PHP 7,软件包名称为 php70u-mbstring。如果您收到 No package php70w-mbstring available 的消息,则需要执行 sudo yum list | grep "\-mbstring" 命令来查找相应的软件包。 - David Refoua
2
在亚马逊 Linux 实例上,yum install php70-mbstring 对我有用。 - borislemke
我刚刚安装了php7并遇到了同样的问题。非常感谢,Chopchop! - fmc
1
@DRSDavidSoft,您应该将您的评论发布为答案,它解决了我的PHP 5.6问题。 - Geoff

5
使用以下方法解决了问题:
我在php.ini文件中添加了extension=mbstring.so,即使这已经不再是PHP默认加载模块的方法。
从php.ini本身来看:

注意:打包的扩展模块现在通过目录/etc/php.d中的.ini文件加载;这些文件将默认加载。

它似乎解决了我的问题。如果有人对这个问题有其他看法,我仍然很感兴趣。

也许您使用的 PHP 7 发行版没有使用相同的配置位置? - Andrea
我已经安装了 php7.0-mbstring,但由于某些原因 phpenmod mbstring 没有启用它。我不得不使用这种方法手动启用它。此外,我的环境需要执行 sudo service apache2 restart 命令才能使更改生效。 - Zane

2

针对CentOS系统中的PHP7版本

尝试使用以下命令:yum install php70-mbstring


如果您使用的是php 7.0,则这是正确的答案。请注意,首先执行php -v以查找您的版本。 - ssaltman

0

我有这个问题很长一段时间了。 我找到了正确的方法(对我来说)来解决它...而且非常简单 :)

只需在xenial-updates上添加“universe”即可。

# cat /etc/apt/sources.list.d/*
deb [arch=amd64] http://fr.archive.ubuntu.com/ubuntu/ xenial-backports main
deb [arch=amd64] http://fr.archive.ubuntu.com/ubuntu/ xenial main universe
deb [arch=amd64] http://fr.archive.ubuntu.com/ubuntu/ xenial-proposed main
deb [arch=amd64] http://security.ubuntu.com/ubuntu xenial-security main
deb [arch=amd64] http://fr.archive.ubuntu.com/ubuntu/ xenial-updates main **universe**

-1

在使用sudo apt-get install php-mbstring安装之前,请先运行sudo apt-get update和sudo apt-get upgrade。

我今天遇到了同样的问题,找到了这种解决方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接