无法使用 PHP 7 初始化 mbstring
Posted
技术标签:
【中文标题】无法使用 PHP 7 初始化 mbstring【英文标题】:Cannot Initialize mbstring with PHP 7 【发布时间】:2016-04-01 00:15:36 【问题描述】:每当我尝试访问 phpMyAdmin 时,都会收到以下错误:
"缺少 mbstring 扩展。请检查您的 PHP 配置。"
我在 CentOS 7 服务器上运行 LEMP 堆栈。我已选择使用 PHP 7 进行此安装。在运行早期版本的 PHP 的相同设置上,我没有遇到此错误。
extension_loaded('mbstring')
返回 false,即使 mbstring.ini (/etc/php.d/) 包含:
; Enable mbstring extension module
extension=mbstring.so
我 100% 确定 mbstring 模块已安装在我的服务器上。
我完全被难住了,所以如果有人有任何想法,请告诉我。谢谢。
【问题讨论】:
你看过phpinfo();
吗?
@Andrea 是的,它遵循主题,根本没有提及 mbstring。
在这种情况下,mbstring 没有安装和工作。 extension=
不应该进入 mbstring.ini
顺便说一句,我认为它应该进入 php.ini
不适用于 PHP 7,不。来自 php.ini:Note: packaged extension modules are now loaded via the .ini files found in the directory /etc/php.d; these are loaded by default.
@Andrea
我在使用 PHP8 的 DigitalOcean 上遇到了这个问题。用最佳答案解决。我认为这是一个与版本无关的解决方案。
【参考方案1】:
对于那些有 debian 的人:
sudo apt-get install php7.0-mbstring
在 centos 中其他情况(在 centos 6.6 中测试)
sudo yum install php70w-mbstring
正如@mpen 所说,您可以激活它
sudo phpenmod mbstring
【讨论】:
PS:可以用sudo phpenmod mbstring
启用
我也需要重启 apache service httpd restart
对于 CentOS 7 + PHP 7,包名是php70u-mbstring
。如果你得到No package php70w-mbstring available
,你必须做sudo yum list | grep "\-mbstring"
才能找到对应的包。
yum install php70-mbstring
在 Amazon Linux 实例上为我完成了这项工作
@DRSDavidSoft 您应该发表您的评论作为答案,它解决了我的 php 5.6 问题【参考方案2】:
通过以下方法达成了解决方案:
我将extension=mbstring.so
放在 php.ini 中,尽管这不再是 PHP 默认使用的加载模块的方法。
来自 php.ini 本身:
注意:打包的扩展模块现在通过目录 /etc/php.d 中的 .ini 文件加载;这些是默认加载的。
这似乎解决了我的问题。如果其他人对此事有不同的看法,我仍然很想知道。
【讨论】:
也许你使用的 PHP 7 的发行版没有使用相同的配置位置? 我已经安装了php7.0-mbstring
,但由于某种原因phpenmod mbstring
没有启用它。我必须使用这种方法手动启用它。此外,我的环境需要sudo service apache2 restart
才能使更改生效。【参考方案3】:
对于 centos 上的 PHP7
试试这个yum install php70-mbstring
【讨论】:
如果你有 php 7.0 这是正确的答案 注意,首先做一个 php -v 来找到你的版本。【参考方案4】:我有这个问题很长时间了。 我找到了正确的方法(对我来说)来纠正它......而且它相当简单:)
只需在 xenial-updates 上添加“宇宙”
# 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**
【讨论】:
【参考方案5】:在使用 sudo apt-get install php-mbstring 安装之前运行 sudo apt-get update、sudo apt-get upgrade。
我今天遇到了同样的问题,发现是这样的。
【讨论】:
以上是关于无法使用 PHP 7 初始化 mbstring的主要内容,如果未能解决你的问题,请参考以下文章
我无法发出任何工匠命令...每当我运行命令时,它都会说无法加载 php mbstring.so 5.6