升级PHP至7.1.16后CodeIgniter站点报错:Call to undefined function mysqli_init()
解决PHP 7.1.16下CodeIgniter报
Call to undefined function mysqli_init()的问题 这个错误我碰到过好多次了——核心原因就是你的PHP 7.1.16环境没有启用mysqli扩展。在PHP 5.x版本里,mysqli很多时候是默认启用的,但升级到7.x系列后,这个扩展经常需要手动安装/启用,尤其是通过包管理器重新安装PHP的情况。
接下来给你一步步的解决方法:
1. 先确认mysqli扩展是否真的缺失
在你的站点根目录(比如/home/public_html/codeigniter_demo/)创建一个临时文件phpinfo.php,内容如下:
<?php phpinfo(); ?>
访问这个文件(比如http://你的域名/phpinfo.php),然后在页面里搜索"mysqli"。如果找不到任何关于mysqli的模块信息,那肯定是扩展没装或者没启用。
2. 安装并启用mysqli扩展
根据你的服务器系统类型操作:
如果你用的是Debian/Ubuntu系统
- 安装PHP 7.1的mysqli扩展:
sudo apt-get update sudo apt-get install php7.1-mysqli - 重启Web服务器让配置生效:
# Apache用户 sudo systemctl restart apache2 # Nginx用户 sudo systemctl restart nginx
如果你用的是RHEL/CentOS系统
- 安装扩展(注意包名可能因你的软件源略有不同,比如用webtatic源的话是
php71w-mysqli):sudo yum install php7.1-mysqli - 重启Apache:
sudo systemctl restart httpd
3. 检查php.ini配置(可选,但保险)
有时候安装了扩展但php.ini里没开启,你可以通过phpinfo页面找到Loaded Configuration File项,找到你的php.ini路径,打开它并确保以下行没有被注释(去掉前面的;):
extension=mysqli.so
修改后记得重启Web服务器。
4. 确认CodeIgniter的数据库配置
最后再核对下application/config/database.php里的数据库驱动设置,确保:
$db['default']['dbdriver'] = 'mysqli';
这个在你之前PHP 5.4正常运行时应该是对的,但升级后偶尔可能因为配置文件权限问题被改动,确认下更稳妥。
做完这些步骤后,再访问你的CodeIgniter站点,这个错误应该就消失了。
内容的提问来源于stack exchange,提问作者bhayashree
相关产品推荐
相关产品推荐

