Rootop 服务器运维与web架构

缺少 mysqli 扩展。请检查 PHP 配置(redhat安装mysqli模块)

| 暂无评论

phpmyadmin登录时提示错误:缺少 mysqli 扩展。请检查 PHP 配置

需要在php源码中编译出模块然后加载

先介绍点知识:
phpize是什么?php官方说明:
http://php.net/manual/en/install.pecl.phpize.php
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。
比如你想在原来编译好的php中加入json或者mysqli等扩展模块,可以使用phpize实现。
当php编译完成后,php的bin目录下会有phpize程序。进入php源码ext下的相关扩展目录,在编译要添加的模块之前,执行phpize就可以生成configure文件。
如果你是rpm包安装php的话,就安装php-devel这个包,就会有phpize命令了。

开始之前,需要进入php源码安装包中,防止出错,php的版本跟运行的版本一定要一致。

这里系统版本为64位。

[root@oracle mysqli]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

[root@oracle Server]# yum install -y autoconf   //我没安装自动配置程序包

root@oracle mysqli]# ./configure --with-php-config=/usr/local/php/bin/php-config

报错:
checking whether to enable embedded MySQLi support… no
mysql_config not found
configure: error: Please reinstall the mysql distribution
没找到mysql_config,手动指定路径再编译


[root@oracle mysqli]#./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config

OK,没问题
[root@oracle mysqli]# make
[root@oracle mysqli]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

拷贝/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/下的mysqli.so模块至/usr/lib64/php/modules下。
编辑php.ini添加一行:
extension_dir=/usr/lib64/php/modules/       //定义模块路径
extension=mysqli.so //载入mysqli.so模块
重启apache生效。

PS:
刚才重启apache,在phpinfo中始终看不到mysqli部分,一直以为是没有正确加载,检查php.ini也没问题,路径都没问题,权限也没问题,最后在phpinfo中看到

Loaded Configuration File 后面参数为(none)
把/usr/local/php/etc/php.ini拷贝一份到/etc下,重启apache解决了。(之前没有将php.ini复制到/etc下)

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/1236.html

作者:Venus

服务器运维与性能优化

发表回复