如何修复PHP应用中SQLite相关的启动加载警告?
修复PHP启动时SQLite扩展加载失败的警告
这问题我之前帮朋友排查过,其实就是PHP配置里启用了SQLite相关扩展,但对应的.so文件要么没安装,要么路径不对导致的,按下面几步来就能搞定:
第一步:安装缺失的SQLite扩展包
先确认你的系统是否安装了PHP对应的SQLite扩展,不同发行版命令不一样:- 如果你用Debian/Ubuntu系列(且PHP版本是7.0,因为
20160303是PHP7.0的API版本),执行:
要是不确定PHP版本,也可以直接用通用命令:sudo apt-get install php7.0-sqlite3 php7.0-pdo-sqlitesudo apt-get install php-sqlite3 php-pdo-sqlite - 如果你用RHEL/CentOS系列,执行:
若是第三方源(比如Webtatic)的特定PHP版本,换成对应包名,比如sudo yum install php-sqlite3 php-pdo-sqlitephp70w-sqlite3。
- 如果你用Debian/Ubuntu系列(且PHP版本是7.0,因为
第二步:检查并修正PHP配置文件里的扩展路径
- 先找到当前PHP加载的配置文件路径,执行:
输出里的php --iniLoaded Configuration File就是你要修改的php.ini文件。 - 打开这个php.ini文件,搜索
extension=pdo_sqlite.so和extension=sqlite3.so这两行:- 如果这两行前面有分号
;,说明是注释状态,那警告可能是其他配置文件(比如conf.d目录下的单独扩展配置)导致的,去对应目录找相关文件; - 如果没有注释,检查引号里的路径是否和系统中实际的
.so文件路径一致。你可以用find /usr/lib/php -name "sqlite3.so"命令查找实际路径,然后修改配置里的路径,或者直接去掉路径只写extension=pdo_sqlite.so和extension=sqlite3.so,让PHP自动查找。
- 如果这两行前面有分号
- 先找到当前PHP加载的配置文件路径,执行:
第三步:验证修复效果
- 执行
php -m命令,查看输出列表里是否有sqlite3和pdo_sqlite这两项; - 重启你的PHP-FPM服务或者Web服务器(比如Apache/Nginx),然后查看启动日志,确认警告是否消失。
- 执行
内容的提问来源于stack exchange,提问作者the flash two
相关产品推荐
相关产品推荐

