BT 宝塔面板如何升级 SQLite 扩展?Laravel 11 需要 3.35.0+

部署了 Laravel 11 应用到 BT 面板,起初正常,后来发现 Cache 无法使用,报错:

SQLSTATE[HY000]: General error: 1 near "on": syntax error (Connection: sqlite, SQL: insert into "cache" ("key", "value", "expiration") values (git-log, a:69:{i:0;a:4:...

调查后发现 Laravel 要求更新的 SQLite 扩展,我的 BT 的太旧了

[root@iZuf68bhzys6m6959eh8jfZ ~]# php -i | grep -i sqlite
PDO drivers => mysql, sqlite
pdo_sqlite
PDO Driver for SQLite 3.x => enabled
SQLite Library => 3.7.17
sqlite3
SQLite3 support => enabled
SQLite Library => 3.7.17
sqlite3.extension_dir => no value => no value

我看了下 BT 上的软件管理,没有发现可以升级扩展的方法,请问有办法升级吗?如果没有简易的办法的话,就只能切换到 MySQL 了。

另外,有一点点诡异的是,Laravel 并不会检查 SQLite 的版本,并且其他的表没遇到问题,只有 Cache 有问题,而且从 Laravel 11 起,默认的 Cache 驱动是数据库,其实就是 ALL IN SQLite 了。


这是我的系统版本:

[root@iZuf68bhzys6m6959eh8jfZ ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID:    CentOS
Description:    CentOS Linux release 7.9.2009 (Core)
Release:    7.9.2009
Codename:    Core
[root@iZuf68bhzys6m6959eh8jfZ ~]# php --version
PHP 8.2.16 (cli) (built: Apr 29 2024 18:16:30) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.16, Copyright (c), by Zend Technologies
[root@iZuf68bhzys6m6959eh8jfZ ~]#
附言 1  ·  2周前

我参考 vikborges.com/articles/compiling-t... 解决了。首先,到官网下 autoconf 版本;然后,本地编译 ./configure && make,无需安装,替换 php-fpm 所用的 libsqlite3.so 库(可以备份下旧的,以防万一);最后,重启下 PHP 服务就好了。

附言 2  ·  2天前

上午在 BT 里升级了 PHP 版本,结果又遇到了这个问题,不知道为何又用回旧的 /usr/lib64/libsqlite3.so.0.8.6.backup,通过翻看自己的问题,处理好了。提出问题、分享解决,起码对自己是有帮助。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 10

不是sqlite问题啊,是sql语句有问题啊,on 附近

2周前 评论
xuchunyang (楼主) 2周前

从官网下载源码编译

2周前 评论

宝塔很多插件都不更新,前段时间gitlab网安说有漏洞,结果一看gitlab除了最新版基本都有漏洞,结果宝塔又不能升级,只能关掉 :joy:

2周前 评论
Mutoulee

非要用SQLite吗? 虽然Laravel11的默认数据库驱动是SQLite,但是我都习惯第一步改驱动为mysql。

2周前 评论
xuchunyang (楼主) 2周前

宝塔php自带sqllite扩展

2周前 评论

编译安装扩展到php.ini写下位置就可以了吧

2周前 评论
xuchunyang (楼主) 2周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!