我无法运行 phpmyadmin,它报告说The mysqli extension is missing.
我已经使用 MariaDB 运行 MySQL 一段时间了,通过多个版本的 Ubuntu。当前运行 22.04。一段时间没有使用 phpmyadmin 后,我最近发现它不再工作了。我已阅读了有关此问题的各种搜索结果,但我找到的大部分或全部结果都不是最新的,并且无法解决我的问题。这是我在系统上安装的 php 版本列表:替代 php 有 3 个选项(提供/usr/bin/php
)。
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.1 81 manual mode
3 /usr/bin/php8.2 82 manual mode
Press <enter> to keep the current choice[*], or type selection number:
<?php phpinfo(); ?>
告诉我 apache2 正在运行 php 8.1.18。修改后/etc/php/8.1/apache2/php.ini
,/etc/php/8.2/apache2/php.ini
使用
extension=/usr/lib/php/20220829/mysqli.so
phpinfo/etc/php/8.1/apache2/conf.d/20-mysqli.ini
在其已解析的 ini 文件列表中包含。但我仍然收到缺少 mysqli 扩展的错误消息。
phpmyadmin 之前一直在运行,但我有一段时间没用了,所以我无法确定是什么系统更改引发了这个问题。如能提供任何帮助解决此问题,我将不胜感激。谢谢!
答案1
我并不是说这些命令会解决你的问题(你可能需要根据你的情况调整版本,否则可能会完全不同),但就我而言,在更新到 Ubuntu 21.10(PHP 8.0)时,我发现扩展mysqli
丢失/被禁用,所以我不得不这样做:
sudo apt-get install php8.0-mysql
和:
sudo apt-get install php8.0-mbstring
在后续更新到 22.04 时,我必须禁用 php8.0 模块并启用 php8.1 模块:
sudo a2dismod php8.0
sudo a2enmod php8.1
答案2
我遇到了同样的错误并通过以下方式解决:
- 我检查了 /etc/phpmyadmin 目录,以查看 apache.conf 中的哪个 php 版本正在运行。然后我设置了以下内容:
<FilesMatch .php$> # Apache 2.4.10+ 可以代理到 unix 套接字 SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost"
- 之后一切都开始了,但是一旦我这样做了,我就会根据以下内容更新 phpmyadmin:https://devanswe.rs/manually-upgrade-phpmyadmin/
从那时起,一切都恢复正常了。希望这些信息能对你有所帮助。