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

如何更新PDO以使用最新版本的SQLite3?

解决PHP Docker镜像中SQLite3扩展版本不更新的问题

问题核心:PHP的SQLite3扩展是编译时静态链接到系统SQLite库的,仅更新系统层面的sqlite3二进制文件不会影响PHP扩展使用的版本,必须重新编译PHP的SQLite3扩展,让它链接到新安装的SQLite库。

完整Dockerfile示例

FROM php:8.2-cli

# 安装编译依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    php-dev \
    && rm -rf /var/lib/apt/lists/*

# 编译安装最新版SQLite3(3.49.0)
RUN curl -L https://www.sqlite.org/2025/sqlite-autoconf-3490000.tar.gz | tar xz && \
    cd sqlite-autoconf-3490000 && \
    ./configure --prefix=/usr/local && \
    make && make install && \
    cd .. && rm -rf sqlite-*

# 重新编译PHP的SQLite3和PDO_SQLite扩展,链接到新的SQLite库
RUN docker-php-ext-configure sqlite3 --with-sqlite3=/usr/local \
    && docker-php-ext-install -j$(nproc) sqlite3 pdo_sqlite

验证结果

构建镜像后,运行以下命令验证PHP使用的SQLite版本:

docker compose run --rm php php -r "echo SQLite3::version()['versionString'] . PHP_EOL;"

此时应该输出:3.49.0

关键说明

  • docker-php-ext-configure sqlite3 --with-sqlite3=/usr/local:指定编译扩展时使用手动安装的新SQLite库
  • docker-php-ext-install sqlite3 pdo_sqlite:重新编译并安装SQLite3及PDO_SQLite扩展,替换镜像中原有的旧版本
  • -j$(nproc):利用主机全部CPU核心加速编译,可根据需要省略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:08:14