我刚刚从 Xubuntu 19.10 升级到 20.04。这使我从 php 7.3 升级到 php 7.4.3 和 phpmyadmin 4.9.5+dsfg1-2。
升级之前一切正常。现在,我可以成功访问测试 php 网页,并且可以显示 PHP_info.php 页面。但是,当我尝试访问 phpmyadmin 时,它会引发致命错误,该错误记录在 apache2 错误日志文件中。以下是为便于阅读而展开的内容:
[Tue Sep 15 20:15:09.030096 2020] [php7:error] [pid 2092141] [client ###.###.###.###:53310]
PHP Fatal error: Uncaught Error:
Call to undefined function PhpMyAdmin\\mb_strpos() in /usr/share/phpmyadmin/libraries/classes/Url.php:253
Stack trace:
#0 /usr/share/phpmyadmin/libraries/classes/Url.php(206): PhpMyAdmin\\Url::getArgSeparator()
#1 /usr/share/phpmyadmin/libraries/classes/Url.php(169): PhpMyAdmin\\Url::getCommonRaw()
#2 /usr/share/phpmyadmin/libraries/classes/Core.php(749): PhpMyAdmin\\Url::getCommon()
#3 /usr/share/phpmyadmin/libraries/classes/Core.php(330): PhpMyAdmin\\Core::linkURL()
#4 /usr/share/phpmyadmin/libraries/classes/Core.php(353): PhpMyAdmin\\Core::getPHPDocLink()
#5 /usr/share/phpmyadmin/libraries/classes/Core.php(973): PhpMyAdmin\\Core::warnMissingExtension()
#6 /usr/share/phpmyadmin/libraries/common.inc.php(106): PhpMyAdmin\\Core::checkExtensions()
#7 /usr/share/phpmyadmin/index.php(27): require_once('/usr/share/phpm...')
#8 {main}
thrown in /usr/share/phpmyadmin/libraries/classes/Url.php on line 253, referer: http://<server>/html/admin.html
这个函数是如何mb_strpos()没有定义?
关于如何解决这个问题有什么建议吗?
答案1
mb_strpos
不是核心 PHP 中的默认函数,它包含在mbstring
扩展中。您可以使用以下方式轻松安装它:sudo apt install php-mbstring
答案2
您需要通过放置信息文件使用以下代码:
<?php phpinfo(); ?>
然后,您需要下载此版本的 php-mbstring,例如,如果您有 PHP 8.0.15,那么您需要像这样安装它:
sudo apt-get install php8.0-mbstring
然后重新启动apache2服务:
sudo service apache2 restart
答案3
我遇到了同样的问题,这是因为我使用的是 php7.0-mbstring。通过安装 php7.2-mbstring 解决了这个问题。