![我该如何修复:MySQL 找不到 mysqli.so 或 xml.so](https://linux22.com/image/1181130/%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%EF%BC%9AMySQL%20%E6%89%BE%E4%B8%8D%E5%88%B0%20mysqli.so%20%E6%88%96%20xml.so.png)
我买了一台新笔记本电脑,安装了 Ubu 20.04。我下载了最新的 apache2、php 和 mysql
我从他们自己的网页上获取了 phpMyAdmin,因为以前当我使用 Ubuntu 提供的版本时,经常会出现错误。
当我打开:localhost/phpMyAdmin 时,我看到一条消息:
Composer 检测到您的平台存在问题。您的 Composer 依赖项需要安装以下 PHP 扩展:mysqli、xml
我无法运行 phpMyAdmin。
我试过
pedro@pedro-HP:~$ php -i | grep extension_dir extension_dir => /usr/lib/php/20190902 => /usr/lib/php/20190902 pedro@pedro-HP:~$
我检查了 /usr/lib/php/20190902,确实没有这两个扩展。
由于不知道从哪里可以找到它们,所以我从我的旧笔记本电脑上复制了它们。我不知道是否存在版本问题,但是 php 找不到它们。
新笔记本电脑的 php 版本为 7.4,旧笔记本电脑的 php 版本为 7.2
我将 php.ini 设置为:
扩展名=/usr/lib/php/20190902/mysqli
扩展名=/usr/lib/php/20190902/xml
我尝试使用 .so 文件扩展名,但在 apache2 error.log 上看到错误:php 似乎添加了 .so,因此它正在寻找 mysqli.so.so 和 xml.so.so
所以我删除了 .so (没有双关语的意思)
每次更改后我都会重新启动 apache2 和 mysql,但错误仍然存在。
sudo /etc/init.d/apache2 重新启动
sudo /etc/init.d/mysql 重新启动
现在我不知道我还能做什么。
您有什么建议吗?在我的旧笔记本电脑上,完全相同的设置可以正常工作!!
答案1
您可以使用以下命令安装 mysqli 和 xml
sudo apt-get 安装 php7.x-mysqli
sudo apt-get 安装 php7.x-xml
sudo 服务 apache2 重启
务必更换X使用您已安装的版本。
例如:sudo apt-get install php7。2-mysqli
答案2
对于 mysqli,以下操作对我有用:
apt install php php-mysqli
根据安装的 php(在 Ubuntu 20.04.4 LTS 上)选择了正确版本的 mysqli。
$ php -m | grep mysqli
$ mysqli
确认现在可用。