我在ubuntu 12.04上遇到了phpmyadmin的问题。 我已经安装了apache2,php5,mysql和phpmyadmin。
phpinfo();
脚本,不显示有关mysqli或mysql扩展名的内容。
当我尝试启动phpmyadmin时,会出现此错误:
---- **phpMyAdmin - Error** ------- **The mysqli extension is missing. Please check your PHP configuration.** ----
在php.ini文件中,我取消注释extension=mysql.so
行,但不起作用...
任何人都有另一种可行的解决方案吗?
答案 0 :(得分:95)
最新的phpMyAdmin版本需要mysqli扩展,并且将不再使用mysql版本(注意其名称末尾的额外“i”)。
sudo apt-get install php5-mysql
将安装包含旧的和新的包,所以之后您需要做的就是添加
extension=mysqli.so
在你的php.ini中,重新启动apache,它应该可以工作。
答案 1 :(得分:30)
sudo apt-get install php5-mysql
sudo apt-get install php5-mysqlnd
尝试这两种方式它对我有用
答案 2 :(得分:26)
如果您在localhost上运行PHPMyAdmin,请在文件/etc/php5/apache2/php.ini
中取消注释:
mysqli.allow_local_infile = On
重启Apache:
sudo /etc/init.d/apache2 restart
答案 3 :(得分:9)
只需重新启动apache2和mysql:
apache2: sudo /etc/init.d/apache2 restart
mysql: sudo /etc/init.d/mysql restart
然后刷新浏览器,享受phpmyadmin:)
答案 4 :(得分:5)
我遇到了同样的问题,并通过执行以下步骤解决了该问题:
首先检查PHP版本。如果您有多个PHP版本。假设您有PHP版本,例如php7.0,php7.1和php 7.2,
运行这些命令
对于PHP7.0
sudo apt-get install php7.0-mysql
sudo apt-get install php7.0-mysqlnd
对于PHP7.1
sudo apt-get install php7.1-mysql
sudo apt-get install php7.1-mysqlnd
对于PHP7.2
sudo apt-get install php7.2-mysql
sudo apt-get install php7.2-mysqlnd
对于PHP7.3
sudo apt-get install php7.3-mysql
sudo apt-get install php7.3-mysqlnd
编辑ini文件,然后查找mysqli。通过删除; 取消注释该行 对于所有php版本
extension = mysqli.so
/etc/php/<php.version>/apache2/php.ini
对于PHP7.0
sudo nano /etc/php/7.0/apache2/php.ini
对于PHP7.1
sudo nano /etc/php/7.1/apache2/php.ini
对于PHP7.2
sudo nano /etc/php/7.2/apache2/php.ini
对于PHP7.3
sudo nano /etc/php/7.3/apache2/php.ini
最后一次重启apache服务器
sudo /etc/init.d/apache2 restart
答案 5 :(得分:3)
我尝试了很多答案,其中没有一个似乎有效,因为php7.0不是默认设置。
sudo apt-get upgrade
似乎为我做了这个工作,但之后我不得不重新安装php7.0和phpmyadmin:
sudo apt-get install php7.0 php7.0-mysql
sudo apt-get install apache2 apache2-mod-php7.0
sudo apt-get install phpmyadmin
希望它有所帮助!
答案 6 :(得分:2)
我通过编辑/usr/local/zend/etc/php.ini解决了这个问题。
(通过执行netstat -nlp | grep apache找到它,然后strace -p somepid | grep php.ini)。
在文件的末尾,我添加了:
extension=/usr/lib/php5/20090626+lfs/mysql.so
extension=/usr/lib/php5/20090626+lfs/mysqli.so
extension=/usr/lib/php5/20090626+lfs/mcrypt.so
在没有路径的情况下添加它不起作用。
然后重新启动后就可以了。
答案 7 :(得分:1)
对于使用php-fpm的Ubuntu 20.04用户 我通过在php conf中添加完整路径来解决此问题:
编辑/etc/php/7.4/fpm/conf.d/20-mysqli.ini
并替换
extension=mysqli.so
具有:
extension=/usr/lib/php/20190902/mysqli.so
答案 8 :(得分:1)
您需要MySQLi模块。手动安装phpMyAdmin时通常会发生此错误。
sudo apt-get install php7.3-mysql
它将返回您。
[Creating config file /etc/php/7.3/mods-available/mysqlnd.ini with new version]
[Creating config file /etc/php/7.3/mods-available/mysqli.ini with new version]
然后。
sudo service apache2 restart.
然后。
Press F5 on your browser.
答案 9 :(得分:0)
我希望我成功的回答对最近的人有所帮助,因为我不得不尝试许多混合搭配然后找到它:
这个解决方案在 Ubuntu 20.04 桌面上对我有用,PHP v7.4、PHP v8.0.7 和 MySQL v8.0.25 设置。
我所做的是编辑 /etc/php/7.4/apache2/php.ini
和 /etc/php/8.0/apache2/php.ini
文件并替换
extension=mysqli.so
和
extension=/usr/lib/php/20190902/mysqli.so
在两个文件中。
后来,通过 sudo systemctl restart apache2
和 sudo systemctl restart mysql
重新启动了这两个(PHP 和 MySQL)。刷新了 Chrome,phpMyAdmin 响应了登录屏幕。
(更新:请检查您是否也有 /usr/lib/php/20200930/mysqli.so
文件。我测试了它,因为它按目录日期看起来更新,这也适用于两个 PHP 文件,如 {{ 1}})
答案 10 :(得分:0)
遇到了同样的问题,但在我看来,原因是Ubuntu和php版本的更新-从18.04和php-7.2升级到20.04和php-7.4。
Nginx服务器是相同的,所以在我的 / etc / nginx / sites-available / default 中是旧数据:
server {
location /pma {
location ~ ^/pma/(.+\.php)$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
}
我无法使phpmyadmin处理该线程的任何php.ini更改和所有答案,但是有一段时间我打开了/ etc / nginx / sites-available / default并意识到,我仍然很老版本的php。所以我将其更改为
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
问题消失了,phpmyadmin在没有任何mysqli文件投诉的情况下神奇地开始工作。我什至仔细检查了一下,但是是的,这就是它的工作原理-如果您的nginx配置文件中的php-fpm.sock版本错误,则phpmyadmin将无法工作,但显示的原因将是'mysqli扩展名丢失了
答案 11 :(得分:0)
据记录,我的系统是Ubuntu Server 20.04,这里的解决方案均无效。对我来说,我安装了PHP 7.4,并且不得不编辑enter code here
/ etc / php / 7.4 / apache2 / php.ini`。
在此范围内,搜索;extension=mysqli
,取消注释并将mysqli
更改为mysqlnd
,使其看起来像extension=mysqlnd
。我尝试使用mysqli
,但遇到同样的错误,好像我没有启用它,但是mysqlnd
为我工作。
答案 12 :(得分:0)
我在ubuntu上遇到了相同的错误,对我有用的是在/etc/php/7.3/apache2/php.ini中编辑两行
;extension=mysqli to extension=mysqli
,并在取消注释后将扩展名变量位置赋予 mysqli.so
extension=/usr/lib/php/20170718/mysqli.so
然后重新启动服务以确保
systemctl start mysql
答案 13 :(得分:0)
如果您正在使用XAMPP等,只需将此行添加到您的php.ini中。还要检查它是否已经存在,只需删除即可;从它的前面
extension= php_mysqli.dll
停止并启动apache和MySQL,它将正常工作。
答案 14 :(得分:0)
由于升级后出现此问题,因此我只禁用了Apache2-php5
a2dismod php5
并激活了php7
a2enmod php7
希望对所有人都有帮助!
答案 15 :(得分:0)
对于ubuntu用户,请打开您的终端并输入以下命令
sudo apt-get install mysql
之后,只需输入
即可重新启动apache2sudo service apache2 restart
刷新您的浏览器并享受phhmyadmin
答案 16 :(得分:0)
在ubuntu 12.04我不得不改变mssql.compatability_mode = On
。
穿上并工作
答案 17 :(得分:0)
这对我有用,用php和mysql脚本创建一个数据库并打开mysql控制台并输入create user&#39; yourName&#39; @&#39; 127.0.0.1&#39;然后输入授予的所有权限。到&#39; yourName&#39; @&#39; 127.0.0.1&#39;然后打开一个浏览器转到localhost并建立一个数据库,然后转到你的phpmyadmin页面,你会看到它弹出。
答案 18 :(得分:-1)
检查extension_dir是你想要从phpinfo()检查的东西之一。在我的情况下,它默认是extension_dir =“./”,这是错误的。将其更改为extension_dir ='。/ etc /'或您所有的扩展dll当前所在的位置。
答案 19 :(得分:-6)
这将100%工作
用记事本打开php配置文件,找到行: -
;extension=mysqli.dll
将其更改为
extension=mysqli.dll
删除';'
保存
然后重新启动apache服务器,它在win xp上为我工作