Bludit轻量级CMS:在Oracle云服务器上搭建主从博客系统
为什么选择Bludit?
在寻找适合云服务器部署的内容管理系统时,Bludit凭借其以下优势脱颖而出:
1. 极致轻量
- 无需数据库服务器:Bludit使用SQLite文件型数据库,无需MySQL、PostgreSQL等额外服务
- 资源占用极低:核心代码仅几MB,在956MB内存的Oracle云服务器上运行流畅
- 部署简单:只需PHP 7.4+环境,上传即可运行
2. 简单易用
- 文件存储:所有内容(文章、页面、配置)都存储在
bl-content目录下 - 易于备份:只需复制整个
bl-content目录即可完成备份 - 易于迁移:只需将文件复制到新环境即可完成迁移
3. 支持REST API
- 自动化友好:提供完整的REST API接口,支持通过API创建、编辑、删除文章
- 第三方集成:可与爬虫、自动化脚本无缝集成
- 扩展性强:支持自定义插件开发
4. 开源免费
- MIT许可证:完全开源,可自由使用和修改
- 社区活跃:有丰富的主题和插件生态
- 持续更新:定期发布新版本和功能更新
服务器环境
硬件配置(Oracle Cloud Always Free)
- CPU:AMD EPYC 7551 32-Core(共享)
- 内存:956MB
- 存储:45GB
- 带宽:10TB/月
软件环境
- 操作系统:Ubuntu 24.04 LTS
- Web服务器:Nginx 1.24.0
- PHP版本:PHP 8.3.6
- PHP扩展:php-fpm, php-sqlite3, php-gd, php-curl, php-mbstring
主从配置方案
方案设计
主服务器(209)- 163.192.24.209
- 角色:读写服务器
- 职责:内容发布、编辑、管理
- 工作方式:管理员在此进行内容操作
从服务器(125)- 159.54.173.125
- 角色:只读服务器
- 职责:内容展示、访问服务
- 工作方式:定时从主服务器同步内容
同步脚本实现
在主服务器上创建/root/sync_bludit.sh脚本:
#!/bin/bash
CONTENT_DIR="/var/www/html/bl-content"
SLAVE_IP="159.54.173.125"
LOG_FILE="/tmp/bludit_rsync.log"
echo "=========================================="
echo "Bludit 内容同步 (rsync)"
echo "开始时间:\$(date)"
# rsync同步
rsync -avz --delete \
-e "ssh -o StrictHostKeyChecking=no" \
${CONTENT_DIR}/ \
root@${SLAVE_IP}:${CONTENT_DIR}/
echo "同步完成!"
echo "结束时间:\$(date)"
echo "=========================================="
# 记录日志
echo "[$(date)] 同步完成" >> ${LOG_FILE}
赋予执行权限:
chmod +x /root/sync_bludit.sh
定时任务配置
在主服务器上添加cron定时任务,每小时同步一次:
# 编辑crontab
crontab -e
# 添加以下行
0 * * * * /root/sync_bludit.sh >> /tmp/bludit_rsync.log 2>&1
这样,系统会在每小时的第0分钟(如08:00、09:00...)自动执行同步。
优势总结
通过这套主从方案,我们获得了以下优势:
1. 内容一致性
- 主从内容完全一致
- 单点写入避免冲突
- 定时自动同步保证实时性
2. 高可用性
- 主服务器维护时,从服务器仍可访问
- 分布式部署提升访问速度
- 降低单点故障风险
3. 易于维护
- rsync自动同步,无需人工干预
- 完整的日志记录
- 简单的备份和恢复
4. 资源高效
- 从服务器只读,降低资源消耗
- SQLite文件型数据库,轻量高效
- 无需复杂的数据库主从配置
作者:甜甜 日期:2026年2月25日 技术栈:Ubuntu 24.04 + Nginx + PHP 8.3 + Bludit 3.17.2