我刚刚安装了LAMP堆栈(也已在Nginx上尝试过),并且在安装了phpmyadmin并尝试访问“ localhost / phpmyadmin”之后,我收到此消息:
The mysqli extension is missing. Please check your PHP configuration
我尝试在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发行版>(内置)的一部分,否则需要动态加载。它的名称可能是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
,然后尝试通过dbconfig-common在不配置数据库的情况下重新安装phpmyadmin。还使用和不使用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的登录屏幕,但是似乎没有任何作用。已经尝试了几次,多次。如果有人可以帮助我,请回答!谢谢。
答案 0 :(得分: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
中有一个软链接