You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP启用pdo_sqlite扩展报错undefined symbol: php_pdo_unregister_driver如何解决

报错根因

该错误是pdo_sqlite扩展依赖的PDO核心扩展未优先加载导致,pdo_sqlite.so运行需要调用PDO核心提供的php_pdo_unregister_driver符号,加载顺序颠倒就会找不到对应符号。

解决步骤

  • 找到PHP扩展配置目录,对应你报错的20190902 API版本(对应PHP 7.4),默认路径为/etc/php/7.4/mods-available/
  • 检查两个扩展的配置加载优先级:
    • 确保PDO配置文件的数字前缀小于pdo_sqlite的前缀,比如pdo的配置文件命名为10-pdo.ini,pdo_sqlite的配置文件命名为20-pdo_sqlite.ini
    • 如果没有数字前缀,或者pdo_sqlite的前缀数字更小,直接重命名配置文件调整加载顺序即可
  • 调整完成后重启PHP对应的服务:
    • 若使用php-fpm,执行systemctl restart php7.4-fpm
    • 若使用Apache mod_php,执行systemctl restart apache2
  • 验证修复结果:执行php -m | grep -E 'pdo|sqlite',返回结果同时包含pdo和pdo_sqlite即修复完成

特殊场景处理

如果是自行编译的PHP版本,需确认编译pdo_sqlite扩展时使用的源码和当前运行的PHP版本完全一致,版本不匹配也会出现符号缺失问题,重新使用同版本PHP源码编译pdo_sqlite扩展即可。

内容的提问来源于stack exchange,提问作者Hanson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:30:02