Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to install php-mysqli on PHP7

Tags:

php

centos

mysqli

I have installed PHP 7, mysql5.7, Apache2.2, CentOS6.

And I'm installing CodeIgniter3.0.6.

When I use database connection, error occured and said

A PHP Error was encountered

Severity: Core Warning

Message: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/php_mysqli.so' - /usr/lib64/php/modules/php_mysqli.so: cannot open shared object file: No such file or directory

Filename: Unknown

Line Number: 0

Of course there are no files in '/usr/lib64/php/modules/php_mysqli.so', but I don't know how to install mysqli.so.

I tried

yum install php-mysql

but

Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.riken.jp
 * extras: ftp.iij.ad.jp
 * remi-safe: mirror.awanti.com
 * updates: ftp.iij.ad.jp
Resolving Dependencies
--> Running transaction check
---> Package php-mysql.x86_64 0:5.3.3-46.el6_7.1 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-46.el6_7.1 for package: php-mysql-5.3.3-46.el6_7.1.x86_64
--> Finished Dependency Resolution
Error: Package: php-mysql-5.3.3-46.el6_7.1.x86_64 (updates)
           Requires: php-common(x86-64) = 5.3.3-46.el6_7.1
           Installed: php-common-7.0.4-1.el6.remi.x86_64 (@remi-php70)
               php-common(x86-64) = 7.0.4-1.el6.remi
           Available: php-common-5.3.3-40.el6_6.x86_64 (base)
               php-common(x86-64) = 5.3.3-40.el6_6
           Available: php-common-5.3.3-46.el6_6.x86_64 (updates)
               php-common(x86-64) = 5.3.3-46.el6_6
           Available: php-common-5.3.3-46.el6_7.1.x86_64 (updates)
               php-common(x86-64) = 5.3.3-46.el6_7.1
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

and it didn't work.


when I execute yum install php7.0-mysql or yum install php70w-mysql command,

Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.riken.jp
 * extras: ftp.iij.ad.jp
 * remi-safe: mirror.awanti.com
 * updates: ftp.iij.ad.jp
No package php7.0-mysql available.
Error: Nothing to do

I don't know what to do at all.

like image 387
ryochanuedasan Avatar asked Apr 03 '16 15:04

ryochanuedasan


People also ask

Is MySQLi included in PHP?

For the MySQLi functions to be available, you must compile PHP with support for the MySQLi extension. The MySQLi extension was introduced with PHP version 5.0. 0. The MySQL Native Driver was included in PHP version 5.3.

How can I tell if MySQLi is enabled in PHP?

Check if MySQLi is Installed You can do that by visiting a phpinfo() page that you made, or by running this command: php -m | grep mysqli.

Is MySQLi installed by default?

On Windows, for PHP versions 5.3 and newer, the mysqli extension is enabled and uses the MySQL Native Driver by default. This means you don't need to worry about configuring access to libmysql.


2 Answers

For PHP7, on CentOS / RHEL:

yum install php70w-mysql

if you use the Remi repository

yum install php70-php-mysqlnd

for Ubuntu:

apt-get install php7.0-mysql
like image 54
Federkun Avatar answered Sep 26 '22 06:09

Federkun


Please remind that the mysql extension is deprecated and doesn't exists anymore with PHP 7.

The php-mysqlnd package provides only the mysqli and pdo_mysql extensions.

The php-pecl-mysql is also available, build from a git snapshot, provided for compatibility for legacy applications, but is not supported.

From the original question:

Installed: php-common-7.0.4-1.el6.remi.x86_64 (@remi-php70)

You have php 7.0.4 installed from remi-php70, but the repository is not enabled. You need to enabled it, so yum will find the right package matching the installed version.

From the Configuration Wizard instructions:

yum install yum-utils
yum-config-manager --enable remi-php70
yum install php-mysqlnd

Notice: the correct command to install an "foo" extension is yum install php-foo, so "yum install php-mysql" will install the package which provides the mysql extension (so php-pecl-mysql), "yum install php-mysqli" will install the packages which provides the mysqli extension (so php-mysqlnd).

like image 21
Remi Collet Avatar answered Sep 26 '22 06:09

Remi Collet