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

基于trafex/php-nginx镜像的Docker环境SQLite3类未找到报错如何解决

问题根因

你当前安装的php8-pdo_sqlite仅为PDO接口的SQLite驱动,仅支持通过PDO类操作SQLite数据库,而你代码中使用的SQLite3是PHP独立的原生SQLite扩展,二者属于不同的软件包,因此会报类不存在的错误。

解决方法

你可以根据需求选择任意一种方案:

方案1:保留现有代码,安装原生SQLite3扩展

修改Dockerfile,在安装扩展的命令中补充php8-sqlite3包:

FROM trafex/php-nginx:latest

USER root
RUN apk add --no-cache php8-pdo_sqlite php8-sqlite3
# 可选:提前创建数据库目录并分配权限,避免后续读写报错
RUN mkdir -p /var/private && chown nobody:nobody /var/private

USER nobody

修改后重新构建镜像、启动容器即可正常使用new SQLite3()语法。

方案2:改用PDO语法操作数据库(无需额外安装扩展)

将你的PHP代码调整为PDO写法即可复用已安装的pdo_sqlite扩展:

<?php
$db = new PDO('sqlite:/var/private/anmeldungen.db');
// 数据库操作逻辑
$db = null; // 关闭连接
验证方法

容器启动后执行命令php -m | grep sqlite,如果输出同时包含pdo_sqlite和sqlite3,说明扩展已全部安装成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:48:04