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

时间:2016-02-16 06:06:52

标签: php mysql mysqli php-7

我在Ubuntu 14.04上安装了PHP 7,MySQL 5.5.47。 我已使用以下方式检查已安装的扩展程序:

sudo apt-cache search php7-*

它输出我:

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

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

注意:我是php7中的新手。

8 个答案:

答案 0 :(得分:96)

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

sudo apt-get install php-mysql

这将自动更新apache和php7。

干杯!

答案 1 :(得分:27)

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

extension=php_mysqli.dll

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

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

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

答案 2 :(得分:13)

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

答案 3 :(得分:12)

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

延长= php_mysqli.so

答案 4 :(得分:10)

对于所有docker用户,只需从您的php容器内部运行docker-php-ext-install mysqli

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

答案 5 :(得分:4)

在ubuntu上,

缺少mysqli时 执行以下操作,

sudo apt-get install php7.x-mysqli

sudo service apache2 restart

用您的PHP版本替换7.x

注意:这可能是7.0及更高版本,但是例如Drupal出于安全考虑建议使用“ php7.2”。

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

php -v

如果缺少mbstring,您做的完全一样

apt-get install php7.x-mbstring

service apache2 restart

我最近在将php从7.0升级到7.2时不得不对PHPmyadmin进行此操作 在Ubuntu 16.04上。

答案 6 :(得分:0)

让我们使用

Controller

代替

mysqli_connect

因为 php7不支持mysql_connect

答案 7 :(得分:0)

如果在按照 Speedy's answer above docker-php-ext-install mysqli 安装 mysqli 后使用 docker,您应该按照此答案重新启动 fpm https://stackoverflow.com/a/43076457/932473

从容器内部

kill -USR2 1