无法在 PHP7 上安装 php-mysqli
我已经安装了 PHP 7、mysql5.7、Apache2.2、CentOS6.
I have installed PHP 7, mysql5.7, Apache2.2, CentOS6.
我正在安装 CodeIgniter3.0.6.
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
'/usr/lib64/php/modules/php_mysqli.so'当然没有文件,但我不知道如何安装mysqli.so.
Of course there are no files in '/usr/lib64/php/modules/php_mysqli.so', but I don't know how to install mysqli.so.
我试过了
yum install php-mysql
但是
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
它没有用.
当我执行 yum install php7.0-mysql
或 yum install php70w-mysql
命令时,
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.
推荐答案
请注意mysql 扩展是 已弃用 并且不存在不再使用 PHP 7.
Please remind that the mysql extension is deprecated and doesn't exists anymore with PHP 7.
php-mysqlnd 包仅提供 mysqli 和 pdo_mysql 扩展.
The php-mysqlnd package provides only the mysqli and pdo_mysql extensions.
php-pecl-mysql 也可用,从 git 快照构建,提供与旧版应用程序的兼容性,但不受支持.
The php-pecl-mysql is also available, build from a git snapshot, provided for compatibility for legacy applications, but is not supported.
来自原始问题:
已安装:php-common-7.0.4-1.el6.remi.x86_64 (@remi-php70)
Installed: php-common-7.0.4-1.el6.remi.x86_64 (@remi-php70)
您从 remi-php70 安装了 php 7.0.4,但未启用存储库.您需要启用它,因此 yum 会找到与已安装版本匹配的正确软件包.
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.
来自配置向导说明:
yum install yum-utils
yum-config-manager --enable remi-php70
yum install php-mysqlnd
注意:安装foo"扩展的正确命令是 yum install php-foo,所以yum install php-mysql"将安装提供 mysql 扩展的包(所以 php-pecl-mysql), "yum install php-mysqli" 将安装提供 mysqli 扩展名的包 (so 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).
相关文章