ubuntu 16.04 上的 php 7.2 上缺少请求的 PHP 扩展 ext-mysqli *

Posted

技术标签:

【中文标题】ubuntu 16.04 上的 php 7.2 上缺少请求的 PHP 扩展 ext-mysqli *【英文标题】:The requested PHP extension ext-mysqli * is missing on php 7.2 on ubuntu 16.04 【发布时间】:2019-09-12 05:02:28 【问题描述】:

当我

composer create-project phpmyadmin/phpmyadmin

我遇到了问题:

- The requested PHP extension ext-mysqli * is missing from your system. Install or enable PHP's mysqli extension.

我已经编辑了我的 php.ini 并重新启动了 php 和 nginx 但仍然显示错误?

sudo systemctl restart php7.2-fpm
sudo systemctl restart nginx

sudo nano /etc/php/7.2/fpm/php.ini

cgi.fix_pathinfo=0
;extension=bz2
extension=curl
;extension=fileinfo
extension=gd2
;extension=gettext
;extension=gmp
extension=intl
extension=imap
;extension=interbase
;extension=ldap
extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=gettext
;extension=gmp
extension=intl
extension=imap
;extension=interbase
;extension=ldap
extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop

; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=snmp

;extension=soap
;extension=sockets
;extension=sqlite3
;extension=tidy
extension=xmlrpc
;extension=xsl

我需要安装另一个mysqli吗?太奇怪了。我已经安装了 sudo apt-get install php7.2-fpm php7.2-mysql php7.2-cgi php7.2-common php-pear php7.2-mbstring 之前和工作良好。但是我不知道为什么我重新安装ubuntu和mariaDB以及php 7.2和phpmyadmin时会出现问题。

【问题讨论】:

你要安装什么? 【参考方案1】:

当我启用 MySQLi 扩展时,这对我有用, 在 php.ini 中启用 MySQLi 扩展,只需在 php.ini 中取消注释此行

extension=php_mysqli.dll

这是php.ini文件路径

/etc/php/7.0/apache2/php.ini

这个问题主要是因为在 PHP 7.x 中默认禁用 MySQLi 扩展

【讨论】:

我使用 nginx,我的 php.ini 显示在我的问题上!我取消了 extension=mysqli 的注释。 php 7.2 与 php 7.0 不同【参考方案2】:

我通过安装解决了这个问题

$ sudo apt-get install php7.2-fpm php7.2-cli php7.2-mysql php7.2-gd php7.2-imagick php7.2-recode php7.2-tidy php7.2-xmlrpc php7.2-common php7.2-curl php7.2-mbstring php7.2-xml php7.2-bcmath php7.2-bz2 php7.2-intl php7.2-json php7.2-readline php7.2-zip

但我不知道为什么?

【讨论】:

可能是因为php7.2-mysql

以上是关于ubuntu 16.04 上的 php 7.2 上缺少请求的 PHP 扩展 ext-mysqli *的主要内容,如果未能解决你的问题,请参考以下文章

06-Ubuntu18.04&16.04安装PHP(7.0|7.1|7.2|7.3)

text Servidor Vagrant LAMP - Ubuntu 16.04,Apache,MySQL e PHP 7.2 mais phpMyAdmin e xDebug。

wordpress搭建 ubuntu16.04 apache2 + php7.0 + mysql

如何在 Ubuntu 16.04 上的 XAMPP 中安装较旧的 PHP 版本?

ubuntu phpize 安裝

在 ubuntu 上安装 phpmyadmin 后显示错误