我刚刚从 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()怎么没有定义?
关于如何解决这个问题的任何建议?
mb_strpos
不是核心 PHP 中的默认函数,它包含在mbstring
扩展中。您可以轻松地安装它sudo apt install php-mbstring
您需要通过使用以下代码放置info.php来找出您的服务器正在使用哪个 PHP :
然后你需要为这个版本下载 php-mbstring,例如如果你有 PHP 8.0.15 那么你需要像这样安装它:
然后重启apache2服务:
我遇到了同样的问题,这是因为我使用的是 php7.0-mbstring。通过安装 php7.2-mbstring 修复它。