【问题标题】:Error in phpmyadmin - `mysqli extension is missing`phpmyadmin 中的错误 - `缺少 mysqli 扩展`
【发布时间】:2019-05-23 11:40:35
【问题描述】:

我刚刚安装了 LAMP 堆栈(也尝试使用 nginx),在安装 phpmyadmin 并尝试访问 'localhost/phpmyadmin' 后,我收到以下消息:

The mysqli extension is missing. Please check your PHP configuration

我已经尝试过herehere 的步骤。

我尝试在 Ubuntu 18.04 'php7.2-mysql' 上安装(php 7.2 是我当前的 php 版本)并且 'php7.2-mysqli' 重定向到 'php7.2-mysql' 并且它们都已经以最新版本安装。

在 phpmyadmin 文档中,关于缺少的扩展名是这样说的:

1.20 我收到一个关于缺少 mysqli 和 mysql 扩展的错误。

要连接到 MySQL 服务器,PHP 需要一组称为“MySQL 扩展”的 MySQL 函数。这个扩展可能是 PHP 发行版的一部分 >(compiled-in),否则需要动态加载。它的名字可能是 mysqli.so 或 php_mysqli.dll。 phpMyAdmin 尝试加载 > 扩展但失败。通常,通过安装一个名为“PHP-MySQL”或类似软件的软件包来解决问题。

目前 PHP 作为 MySQL 扩展提供了两个接口 - mysql > 和 mysqli。先试试mysqli,因为它是最好的。

此外,我已经尝试修改 php.ini 文件,添加或取消注释以下几行:

extension=mysqli
extension=mysqli.so
extension=mysqli.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll

然后尝试重新安装 phpmyadmin,无论是否通过 dbconfig-common 配置数据库。还重新安装了带有和不带有secure_installation的mysql-server(版本5.7.24)。

使用 apache2 我已经安装了以下 php 包:

php php-cgi libapache2-mod-php php-common php-pear php-mbstring

使用 nginx 我已经安装了以下 php 包:

php-fpm php-mysql

但这些都没有改变错误消息(即使在清除软件包并手动删除文件夹并重新安装之后)。

重要的是要注意堆栈中的所有程序都可以正常工作。让我觉得这是 phpmyadmin 的一些问题。

所以,我想进入 phpmyadmin 的登录屏幕,但似乎没有任何效果。已经尝试了几种解决方案,几次。如果有人可以帮助我,请回答!谢谢。

【问题讨论】:

  • 您编辑了哪个 php.ini?之后你重启了哪个服务? error.logs 中有什么内容?现在是 Apache 还是 Nginx?哪个 PHP SAPI 与它们一起使用?您对phpinfo() 有何看法?
  • 安装扩展程序后重新启动 Web 服务器。另外,希望您只安装一个 php.ini 文件。您能否分享以下命令的输出 - php -m | grep mysql
  • @mario 实际上在 nginx 中,我已经从 '/etc/php/7.2/fpm/php.ini' 编辑了 php.ini,就像在 phpinfo() 中显示的那样;对不起,但我不知道我是否使用另一个 SAPI。刚刚安装了干净的 LEMP + phpmyadmin。 @ValerianPereira 这里是命令的输出:mysqli mysqlnd pdo_mysql

标签: php mysqli phpmyadmin ubuntu-18.04


【解决方案1】:

如果您更改了某些配置并且在重新安装时没有将其删除,那么没有帮助。按照以下命令清除旧配置:

sudo apt purge php7.2-* phpmyadmin

删除后,重新安装包:

sudo apt install apache2 php7.2 php7.2-mysql # Add other dependent if you need ...

现在,mysqli 应该存在于/etc/php/7.2/mods-available/20-mysqli.ini

$ cat /etc/php/7.2/mods-available/mysqli.ini
; configuration for php mysql module
; priority=20
extension=mysqli.so

如果你使用FPM,应该在/etc/php/7.2/fpm/conf.d/20-mysqli.ini中有一个软链接

【讨论】:

  • 看起来我还没有删除足够多的内容。它现在在 apache 和 nginx 上工作。
猜你喜欢
  • 2017-11-20
  • 2012-06-01
  • 2014-08-29
  • 2018-05-22
  • 2015-03-05
  • 2016-06-19
相关资源
最近更新 更多