本文共 1375 字,大约阅读时间需要 4 分钟。
遇到“Class 'mysqli' not found” 错误时,查明问题根源并修复是技术工作者的日常任务之一。以下是针对此错误的一次实践经历和解决过程。
前两天,一个站点转移过来,由于数据库问题,未能妥善处理。今天在检查数据库时,发现依然无法正常使用,错误提示为“fatal error: Class 'mysqli' not found”。进一步调查发现,问题源于PHP编译时未包含mysqli扩展支持。
下载PHP源码
首先,需要下载对应的PHP版本源码。在此案例中,我们选择PHP 5.2.8版本。cd /usr/local/php5-5.2.8
编译PHP扩展
PHP编译过程中,需要在ext
目录下找到相应的扩展文件。具体操作如下:cd /usr/local/php5-5.2.8/ext/mysqli
使用phpize生成配置文件
已安装PHP的php5
目录下,包含phpize
可执行文件,可用于生成自定义配置。/usr/local/php5/bin/phpize
运行完成后,会自动生成configure
文件。
配置mysqli扩展
根据生成的configure
文件,添加以下参数:./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/php5/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config
firmaEnter并等待配置完成。
编译扩展
按照提示执行编译命令:makemake testmake install
成功编译后,将生成mysqli.so
文件,通常位于:
/usr/local/php5/lib/php/extensions/no-debug-non-zts-20041030/
修改php.ini文件
打开PHP配置文件,找到如下两行,将它们修改或新增:extension_dir="/usr/local/php5/ext"extension=mysqli.so
保存修改后的文件。
安装mysqli扩展
将mysqli.so
文件复制到指定扩展目录:cp /usr/local/php5/lib/php.extensions/no-debug-non-zts-20041030/mysqli.so /usr/local/php5/ext/
重启服务器
为了使更改生效,需要重启网页服务器(如Apache)。sudo systemctl restart apache2
完成以上步骤后,访问网站页面,检查数据库连接是否正常,预期should看到如下的Confirmation message:
$mysqli = new mysqli("localhost", "用户名", "密码", "数据库名");
功能正常的情况下,应该无任何错误提示。
如果在前期步骤中遇到问题,建议参考PHP官方文档或相关社区资源。如问题依旧无法解决,可提供详细日志获取进一步分析。
转载地址:http://qewfk.baihongyu.com/