IMG_9616.txt.txt
Edited: Thursday 1 May 2025

Sunday, September 19, 2021 at 01:11

WordPress 使 用 SQLite 数 据 库

fivestone
fivestone - 同 一 种 调 调

之 前 写 了 一 半 的 , 如 何 在 轻 量 级 个 人 VPS 上 搭 建 各 种 服 务 的 帖 子 。 一
时 懒 得 去 把 坑 填 完 了 。 但 前 几 天 突 然 发 现 自 己 落 入 了 思 维 误 区 : 为 了 配
合 Mastodon 或 Pleroma, 总 想 着 如 何 把 WordPress 从 MySQL 迁 移 到
PostgreSQL。 一 一 但 是 , 其 实 完 全 可 以 用 SQLite 啊 ! 对 于 偶 尔 才 更 新
一 篇 的 个 人 blog 用 户 , 把 数 据 库 放 在 一 个 SQLite 文 件 里 , 不 需 要 另 外
安 装 数 据 库 服 务 , 完 全 是 可 行 的 。

用 Docker 观 察 内 存 开 销 。 对 于 新 建 的 wordpress 站 点 ,wordpress 本
东 .( 包 括 php-fpm、nginx) _ 占 用 内 存 大 约 是 40-100M ( 使 用 缓 存 插 件
后 会 减 少 ) ; MySQL 数 据 库 占 用 内 存 200M, 随 着 渐 渐 使 用 , 有 着 近
l .blog 站 点 ,MySQL 占 用 内 存 会 达 到 500M 甚 至 更
多 。 一 一 数 据 库 的 这 部 分 内 存 , 使 用 SQLite 后 , 完 全 是 可 以 省 下 的 。

可 以 通 过 SQLite Integration 插 件 , 安 装 基 于 SQLite 的 WordPress。
Wordpress 官 网 的 插 件 页 面 , 因 为 作 者 失 联 而 停 更 。 但 隐 藏 的 插 件 下 载
链 接 , 一 直 都 还 有 效 ;

https: //downloads.wordpress.org/pLugin/sqLite-
integration .1.8 . 1 .zip

最 新 版 本 的 WordPress 也 仍 然 可 用 。Github 上 也 有 这 个 插 件 的 分 支 。

使 用 非 常 简 单 , 就 是 把 db.php 复 制 到 wp-content 目 录 里 , 确 保
你 的 系 统 安 装 了 php-sqlite3 模 块 。 这 里 有 篇 攻 略 。 训 可 以

通 过 Duplicator 之 类 的 wordpress 备 份 插 件 , 或 者 wordpress 自 身 的
导 入 导 出 功 能 , 迹 行 迁 移 , 不 需 要 进 行 数 据 库 级 别 的 转 换 操 作 。

注 意 事 项 :

  1. 最 重 要 的 , 数 据 库 的 文 件 的 存 放 位 置 , 这 个 一 宏 要 改 ! n
    位 置 是 在 wp-content/database/.ht.sqlite, 是 会 被 人 通 过 浏 览 器
    http://website/wp-content/database/.ht.sqlite 直 接 下 载 的 ! 标 善 伯 f 在
    database 文 件 里 添 加 了 .htaccess 权 限 控 制 , 但 对 于 如 今 大 家 用 的
    Nginx, 是 默 认 无 效 的 。

在 wp-config.php 里 添 加 设 置 :

define ( 「DB_DIR「 ,
“/absoLlute/custom/ Path/ to/directory/for/sqlLite/database/fiLle/“) ;
define(「“DB_FILBE“ , “custom_filename_for_sqlLite_database「 ) ;

可 以 更 改 数 据 库 文 件 的 存 放 位 置 , 强 烈 建 议 把 数 据 库 文 件 , 放 到 无 法 直
接 用 网 址 从 外 部 访 问 的 目 录 ( 记 得 给 那 个 文 件 夹 授 权 可 写 ) 。

  1. SQLite 不 适 合 多 线 程 的 高 并 发 使 用 。 如 果 网 站 会 有 多 个 用 户 同 时 在
    后 台 缉 辑 , 那 久 网 站 不 适 合 使 用 SQLlfte; 如 果 只 有 一 个 写 作 者 自 已 编
    辑 blog, 就 很 合 适 。 但 要 避 免 使 用 那 些 , 在 一 般 访 客 浏 览 网 站 时 , 也
    会 导 致 对 数 据 库 进 行 写 入 的 描 件 , 如 :

。 WP Statistics 这 样 的 访 客 统 计 插 件 , 会 把 来 访 者 的 每 一 次 点 击 ,
都 记 录 到 本 机 数 据 库 里 。 建 议 使 用 Google Analysis 之 类 的 外 置 统
计 软 件 (Google 给 wordpress 做 了 个 官 方 插 件 Site Kit by
Google) , 通 过 在 页 面 嵌 入 js , 发 送 访 客 数 据 到 Google 服 务
器 , 不 会 写 入 本 地 数 据 库 。

。 官 方 的 防 垃 圾 评 论 插 件 Akismet Anti-Spam, 其 实 也 是 先 把 每 条
评 论 写 公 本 地 数 据 库 , 相 判 断 是 货 垃 报 的 。 如 枝 微 从 器 仁 大 量 发
送 坭 坚 评 论 , 也 会 造 成 数 据 库 写 入 的 序 力 “ 建 议 使 用
Captche 不 六 的 芸 迩 吴 插 件 【 司 仪 单 瘀 俚 朗 我 配 司 Aderret 起
用 ) , 把 犬 多 数 垃 圾 评 论 在 写 入 数 据 库 之 前 就 过 滁 掉 。

  1. 使 用 WP Super Cache 插 件 , 为 网 站 生 成 缓 存 文 件 , 可 以 极 大 地 减 少

C
“/absolute/custom/path/to/directory/for/sqlite/database/fiLle/“) ;
define(「“DB_FILBE“ , “custom_filename_for_sqlLite_database「 ) ;

可 以 更 改 数 据 库 文 件 的 存 放 位 置 , 强 烈 建 议 把 数 据 库 文 件 , 放 到 无 法 直
接 用 网 址 从 外 部 访 问 的 目 录 ( 记 得 给 那 个 文 件 夹 授 权 可 写 ) 。

  1. SQLite 不 适 合 多 线 程 的 高 并 发 使 用 。 如 果 网 站 会 有 多 个 用 户 同 时 在
    口 SQLIite; 如 果 只 有 一 个 写 作 者 自 己 编
    辑 blog, 就 很 合 适 。 但 要 避 免 使 用 那 些 , 在 一 般 访 客 浏 览 网 站 时 , 也
    会 导 戴 对 数 推 库 迪 行 写 入 的 插件 如 :

。 WP Statistics 这 样 的 访 客 统 计 插 件 , 会 把 来 访 者 的 每 一 次 点 击 ,
都 记 录 到 本 机 数 据 库 里 。 建 议 使 用 Google Analysis 之 类 的 外 置 统
计 软 件 (Google 给 wordpress 做 了 个 官 方 插 件 Site Kit by
Google) , 通 过 在 页 面 嵌 入 js , 发 送 访 客 数 据 到 Google 服 务
器 , 不 会 写 入 本 地 数 据 库 。

。 官 方 的 防 垃 圾 评 论 插 件 AkKismet Anti-Spam, 其 实 也 是 先 把 每 条
评 论 写 入 本 地 数 据 库 , 再 判 断 是 否 垃 圾 的 。 如 果 被 机 器 人 大 量 发
送 垃 圾 评 论 , 也 会 造 成 数 据 库 写 入 的 压 力 。 建 议 使 用 WP
Captcha 之 类 的 验 证 码 插 件 ( 可 以 单 独 使 用 或 配 合 Akismet 一 起
用 ) , 把 大 多 数 垃 圾 评 论 在 写 入 数 据 库 之 前 就 过 滤 掉 。

  1. 使 用 WP Super Cache 插 件 , 为 网 站 生 成 缓 存 文 件 , 可 以 极 大 地 减 少
    对 数 据 库 的 读 取 操 作 。 个 人 用 户 完 全 可 以 在 插 件 设 置 里 , 关 闭 默 认 的
    Garbage Collection 功 能

网 上 搜 到 的 WordPress + SQLite 的 docker images (1、2) ,
Wordpress 和 php 的 版 本 都 有 些 过 时 了 , 本 身 也 有 一 些 小 问 题 ( 如 数
据 库 文 件 夹 的 权 限 设 置 ) , 建 议 修 改 Dockerfile 然 后 自 行 编 译 。 回 头 有
时 间 我 去 改 个 试 试 。

Backlinks