1Panel + WordPress + SQLite 部署与运维指南

AKTG 发布于 5 天前 60 次阅读


一、环境要求

  • 服务器配置:推荐 1C1G 或以上 (๑•̀ㅂ•́)و✧(SQLite 内存占用极低,绝对是低配 VPS 的福音)。
  • 操作系统:主流 Linux 发行版。
  • 前置条件:已安装并登录 1Panel 面板;域名已完成 DNS 解析(确保你的魔法阵已经画好哦~ (^▽^))。

二、部署流程

2.1 创建 PHP 运行环境

  1. 进入 1Panel 控制台,点击左侧菜单「网站」->「PHP运行环境」。
  2. 点击「创建运行环境」,选择 PHP 8.x 及以上版本。
  3. 扩展模板勾选 WordPress(它会自动包含 pdo_sqlite 等必要扩展),确认创建即可 (●'◡'●)。

2.2 创建网站与目录权限

  1. 点击「创建网站」,类型选择「运行环境」,绑定目标域名。
  2. 在网站设置中申请并配置 SSL 证书,开启强制 HTTPS(给你的博客加上绝对防御结界吧!)。
  3. 进入「文件」管理,将网站根目录的运行用户和用户组修改为 1000,确保 WP 具有写入权限 (ง •_•)ง。

2.3 上传源码与激活 SQLite

  1. 下载 WordPress 最新稳定版源码,解压后将所有文件上传至网站根目录(如 /opt/1panel/www/sites/你的域名/index)。
  2. 在根目录找到 wp-config-sample.php,重命名为 wp-config.php
  3. 编辑 wp-config.php,在 <?php 标签下方添加以下常量定义以强制启用 SQLite:

2.4 执行安装向导

浏览器访问绑定的域名,系统将跳过数据库配置页面直接进入安装向导。填写站点标题及管理员账号密码,完成初始化(你的专属小天地就诞生啦!(≧∇≦)ノ)。

三、合规配置(ICP与公安备案悬挂)

3.1 资源准备

从全国互联网安全管理服务平台下载“备案编号图标”,重命名为英文文件名(如 guo_an.png),上传至当前主题的静态资源目录(例如 /wp-content/themes/主题名/images/guo_an.png)。

3.2 代码注入

编辑当前主题的 footer.php 文件,在合适位置插入以下标准 HTML/CSS 代码:

<!-- ICP & 公安备案垂直布局 -->
<footer class="site-footer" style="text-align: center; padding: 20px 0; font-size: 14px; color: #666;">
    <div class="icp-item" style="margin-bottom: 10px;">
        <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow noopener noreferrer" style="text-decoration: none; color: #555;">
            浙ICP备*********号-1 <!-- 替换为实际 ICP 备案号 -->
        </a>
    </div>
    <div class="gongan-item">
        <a href="https://beian.mps.gov.cn/#/query/webSearch?code=你的公安备案码" target="_blank" rel="noreferrer" style="display: inline-flex; align-items: center; gap: 6px; text-decoration: none; color: #555;">
            <img src="/wp-content/themes/你的主题/images/guo_an.png" alt="公安备案图标" style="width: 18px; height: 18px; vertical-align: middle;">
            <span>浙公网安备*********号</span> <!-- 替换为实际公安备案号 -->
        </a>
    </div>
</footer>

四、常见问题排查:Debug 异世界生存手册 🩺

  1. 安装提示“无法写入 wp-config.php”或上传主题失败
    • 原因:网站目录权限不足。WordPress 需要对其所在目录拥有完整的读写权限。
    • 解决:在 1Panel 的「文件」管理中,确保网站根目录的运行用户/组已设置为 1000。若仍有问题,可通过终端进入 PHP 容器执行强制赋权命令(如 docker exec -it <PHP容器名> chmod -R 777 /www/sites/你的域名/index)。
  2. 文章发布时提示“更新失败,此响应不是合法的 JSON 响应”
    • 原因:通常是 1Panel 内置的 WAF(Web应用防火墙)将 WordPress 提交的 HTML 标签或脚本代码误判为 XSS 攻击并进行了拦截。
    • 解决:进入 1Panel 面板的【WAF】->【网站设置】,针对该网站关闭“SQL注入防御”和“XSS防御”,或者适当放宽访问频率限制。
  3. 页面显示“502 Bad Gateway”或完全无法访问
    • 原因:OpenResty 容器状态异常,或云服务商的安全组未放行相关端口。
    • 解决:首先在 1Panel 中检查 OpenResty 容器的运行状态及日志;其次,确认服务器防火墙及云控制台安全组已正确放行 80、443 以及 1Panel 面板默认端口(如 8000)。
  4. HTTPS 证书申请失败或浏览器提示不安全
    • 原因:域名 DNS 解析尚未生效、IPv6 配置冲突,或使用了 CNAME 解析导致验证超时。
    • 解决:在 1Panel 申请证书时,勾选“禁用 CNAME”或“跳过 DNS 验证”;若服务器开启了 IPv6 但实际未连通,建议临时禁用 IPv6 后再尝试申请。
  5. SQLite 数据库报 Disk I/O Error
    • 原因:服务器磁盘空间已满,或 SQLite 文件损坏。
    • 解决:使用 df -h 检查服务器磁盘剩余空间;定期通过 1Panel 备份 wp-content/database/.ht.sqlite 单文件,以便在损坏时快速回滚恢复。

五、SQLite 数据库性能优化方法:给博客施加加速 Buff

虽然 SQLite 在低内存环境下表现优异,但其默认配置偏向于数据安全性而非极致性能。对于 WordPress 这类读多写少的博客系统,可通过以下策略大幅提升响应速度:

  1. 开启 WAL(预写日志)模式
    • 原理:默认的 Journal 模式下,每次写入都会锁定整个数据库;而 WAL 模式允许读写并发执行,极大减少锁争用。
    • 操作:在 wp-config.php 中添加以下常量强制开启:
  2. 调整同步策略(Synchronous)
    • 原理:SQLite 默认在每次事务提交时都等待磁盘 I/O 完成(FULL),这在机械硬盘或低配 VPS 上极其耗时。将其改为 NORMAL 可在保证数据安全的前提下显著提升写入性能。
    • 操作:在 wp-config.php 中添加:
  3. 增加页面缓存(Cache Size)
    • 原理:增大内存中的页缓存可以减少频繁的磁盘寻址,对大表查询和文章列表加载有明显加速效果。
    • 操作:在 wp-config.php 中设置缓存大小(例如分配 20MB 给 SQLite 缓存):
  4. 结合对象缓存与静态化
    • 原理:SQLite 的瓶颈在于单文件 I/O。通过前端缓存彻底绕过数据库查询是终极优化方案。
    • 操作:在 1Panel 应用商店安装 Redis/Memcached,并在 WordPress 中配置 WP-Redis 等插件接管对象缓存。同时启用 WP Super Cache 或 LiteSpeed Cache 生成纯静态 HTML,将数据库压力降至最低。
  5. 定期清理与整理(VACUUM)
    • 原理:随着文章的频繁增删改,SQLite 文件内部会产生碎片,导致体积膨胀和查询变慢。
    • 操作:建议每月使用一次 WP-Optimize 等数据库优化插件,其底层会执行 VACUUM 命令重建数据库文件结构,释放空间并提升 I/O 效率。

六、避坑注意事项:新手村必看 ️

  1. 不要贪心装太多重型插件
    • 提醒:部分依赖复杂 SQL 联表查询或高频写入的插件(如大型商城、高并发统计类)可能会让 SQLite 出现性能瓶颈甚至锁死 (°ロ°) !。建站初期尽量保持轻量,按需开启。
  2. **严禁直接删除 ***.db*** 或 **.sqlite** 文件**
    • 提醒:当你在后台清空了所有文章后,数据库文件大小通常不会自动缩小。此时千万不要手动去删掉数据库文件来“瘦身”,这会导致致命错误!请乖乖使用第五部分的 VACUUM 指令来回收空间。
  3. 升级前务必备份单文件
    • 提醒:由于没有独立的数据库服务进程,所有的核心数据都在一个隐藏文件里。在进行 WordPress 核心升级或更换主题前,一定要利用 1Panel 的计划任务功能,做好这个 .db 文件的异地备份,防止手滑翻车 (╥﹏╥)。
  4. 避开高并发场景
    • 提醒:SQLite 采用文件锁机制,不适合做高流量的论坛或电商站。如果你的博客突然爆火(比如被大 V 转发),建议提前开启极致的静态缓存,或者考虑平滑迁移到 MySQL/MariaDB 阵营哦~
  5. 切忌晚上折腾服务器
    • 提醒:深夜是人类理智最薄弱的时候,这时候敲代码极易手滑删库或写出奇葩 Bug,且修复成本极高 (°ロ°) !。强烈建议在白天精神饱满时进行部署和升级操作,晚上请安心睡觉保命!

七、展望与祝愿:星辰大海的征途 ✨

技术的世界就像一场永不完结的冒险,每一次敲下回车键,都是在为自己开辟新的副本。希望这份指南能帮你顺利度过新手的迷茫期,轻松搭建起属于自己的赛博小窝。

在未来的日子里,愿你的服务器永远不宕机,愿你的文章灵感源源不断,也愿你能在这方小小的天地里,记录下每一个闪闪发光的瞬间。哪怕偶尔遇到 Bug 这种“小怪”,也能从容应对、一键秒杀 (๑•̀ㅂ•́)و✧!

最后,祝各位折腾愉快,早日成为独当一面的大佬!如果这篇文档帮到了你,不妨留个言或者点个收藏,让我们一起在开源的世界里快乐前行吧~ (´▽`ʃ♡ƪ)

此作者没有提供个人介绍。
最后更新于 2026-05-30