如何在php 7中启用MySQLi扩展?

Moh*_*eed 53 php mysql mysqli php-7

我在Ubuntu 14.04上安装了PHP 7,MySQL 5.5.47.我已经检查了已安装的扩展程序

sudo apt-cache search php7-*
Run Code Online (Sandbox Code Playgroud)

它输出我:

php7.0-common - Common files for packages built from the PHP source
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-dbg - Debug symbols for PHP7.0
php7.0-curl - CURL module for PHP
php7.0-enchant - Enchant module for PHP
php7.0-gd - GD module for PHP
php7.0-gmp - GMP module for PHP
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-readline - readline module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php7.0-xsl - XSL module for PHP
php7.0 - server-side, HTML-embedded scripting language (metapackage)
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP
php7.0-bz2 - bzip2 module for PHP
Run Code Online (Sandbox Code Playgroud)

我也无法使用phpinfo()查看MySQLi扩展,请告诉我,如何在PHP 7中启用/安装MySQLi扩展.这就是为什么我不能使用phpmyadmin,它说"缺少mysqli扩展名".

注意:我是php7的新手.

Xen*_*eno 106

问题是用于连接PHP到MYSQL的包被删除(php5-mysql).如果您安装新包:

sudo apt-get install php-mysql
Run Code Online (Sandbox Code Playgroud)

这将自动更新apache和php7.

干杯!

  • 这是Ubuntu(16.04)的正确答案.之后重启apache:`sudo service apache2 restart` (14认同)
  • 记得以前`sudo apt-get update`. (4认同)
  • 作为一个警告... php-mysql 几年前就已被弃用,PHP 开发人员警告说该扩展将在 PHP 7 上删除多年。建议使用 php-mysqli 代替。 (2认同)
  • OP 是 Ubuntu,而不是 Windows。如果扩展不存在,取消注释扩展声明不会有任何好处。如果不是,`apt-get install php7.3-mysqli` 将解决这个问题。您可以通过创建一个仅包含“<?php phpinfo();?>”的 Web 文件并搜索“mysqli”来找到答案 (2认同)

Moh*_*eed 30

我得到了解决方案,我能够在php.ini中启用MySQLi扩展,只是在php.ini中取消注释这一行

extension=php_mysqli.dll
Run Code Online (Sandbox Code Playgroud)

现在MySQLi运行良好.这是apache2,PHP 7,Ubuntu 14.04环境中的php.ini文件路径:

/etc/php/7.0/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)

默认情况下,在PHP 7中禁用MySQLi扩展.

  • `php_mysqli.dll`适用于Windows. (24认同)

Mar*_*erg 22

在 Ubuntu 上,当缺少 mysqli 时,执行以下命令,

sudo apt-get install php7.x-mysqli

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

替换7.x为您的 PHP 版本。

注意:这可能是 7.0 及更高版本,但例如 Drupal 出于安全等原因推荐 PHP 7.2。

要检查您的 PHP 版本,请在命令行中输入:

php -v
Run Code Online (Sandbox Code Playgroud)

如果您缺少 mbstring,则执行完全相同的操作:

apt-get install php7.x-mbstring

service apache2 restart
Run Code Online (Sandbox Code Playgroud)

我最近在Ubuntu 16.04 (Xenial Xerus) 上将PHP 从 7.0 升级到 7.2 时不得不为 phpMyAdmin 执行此操作。


Spe*_*edy 18

对于所有 docker 用户,只需docker-php-ext-install mysqli从 php 容器内运行即可。

更新:“如何安装更多 PHP 扩展”部分中有关https://hub.docker.com/_/php 的更多信息。

  • @Uchendu,它实际上就在 https://hub.docker.com/_/php 的 PHP 容器的描述中 - 在“如何安装更多 PHP 扩展”部分中。我也花了相当长的时间才找到它。我已更新我的答案以包含此信息,谢谢。 (4认同)
  • 有人应该如何找到这条信息?!有相关文件或类似文件吗? (2认同)
  • 这听起来像是一个适用于特定 docker 映像的修复程序,而不适用于一般的 dockerized 安装 (2认同)

Pip*_*ipo 17

sudo phpenmod mysqli
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
  • phpenmod moduleName启用模块到php7(之后重启apache sudo service apache2 restart)
  • phpdismod moduleName禁用模块到php7(之后重启apache sudo service apache2 restart)
  • php -m 列出已加载的模块

  • 谢谢,这有帮助。你能解释一下 phpenmod 的作用吗? (2认同)

小智 12

在ubuntu中需要在php.ini中取消注释这一行,该行位于/etc/php/7.0/apache2/php.ini

延长= php_mysqli.so

  • 这行不在使用Ubuntu 16.04的php.ini中.加了吗? (6认同)