CarefreeCMS 文档CarefreeCMS 文档
指南
  • 内容管理
  • 多站点管理
  • AI文章生成
  • SEO优化
  • 静态化生成
API
  • FAQ
  • 更新日志
  • 贡献指南
  • v1.3.0
  • v1.2.0
  • v1.1.0
GitHub
指南
  • 内容管理
  • 多站点管理
  • AI文章生成
  • SEO优化
  • 静态化生成
API
  • FAQ
  • 更新日志
  • 贡献指南
  • v1.3.0
  • v1.2.0
  • v1.1.0
GitHub
  • 功能特性

    • 内容管理
    • 多站点管理
    • AI 文章生成
    • AI 内容生成
    • SEO 优化
    • 静态化生成
    • 评论系统
    • 用户系统

多站点管理

CarefreeCMS 支持在一套系统中管理多个独立站点,实现统一后台、数据隔离、灵活配置的多站点架构。

功能特点

  • 🌐 统一后台管理多个站点
  • 🔒 站点间数据完全隔离
  • 🎨 每个站点独立模板主题
  • 🌍 支持独立域名、子域名、目录绑定
  • 👥 灵活的站点管理员权限
  • ⚙️ 站点级别的独立配置
  • 📊 站点数据统计和监控
  • 🔄 站点间内容快速复制

站点类型

主站

  • 系统的主要站点
  • 通常绑定主域名
  • 具有最高管理权限
  • 可以管理所有子站

子站

  • 从属于主站的站点
  • 可以是不同的频道或分站
  • 共享主站的部分资源
  • 可以有独立域名

独立站

  • 完全独立的站点
  • 独立的域名和内容
  • 独立的管理权限
  • 适合品牌矩阵管理

创建站点

第一步:添加站点

  1. 进入 系统管理 → 站点管理
  2. 点击 新增站点 按钮
  3. 填写站点基本信息

基本信息

站点代码: tech_blog (唯一标识,字母和下划线)
站点名称: 科技博客
站点类型: 子站 / 独立站
父站点: 主站 (如果是子站)
状态: 启用
排序: 0

站点描述

站点简介: 专注于前沿科技资讯和技术分享
关键词: 科技,技术,博客
联系方式: tech@example.com

第二步:配置域名

域名绑定类型

独立域名

域名: tech.example.com
适用场景: 完全独立的站点
SEO友好: ★★★★★

子域名

子域名: tech
主域名: example.com
完整域名: tech.example.com
适用场景: 频道站、分站
SEO友好: ★★★★☆

目录方式

目录: /tech
完整路径: example.com/tech
适用场景: 小型站点、专题站
SEO友好: ★★★☆☆

提示

推荐使用独立域名或子域名方式,SEO 效果更好

第三步:选择模板

选择模板主题

  1. 从已安装的模板中选择
  2. 或上传新模板
  3. 每个站点可以使用不同的模板

模板配置

首页模板: index.html
文章列表模板: category.html
文章详情模板: article.html
单页模板: page.html

第四步:配置参数

SEO 配置

SEO标题: 科技博客 - 分享前沿科技资讯
SEO关键词: 科技,技术,人工智能,前端开发
SEO描述: 专注于前沿科技资讯和技术分享的专业博客平台

存储配置

存储类型: 本地存储 / OSS / COS
上传路径: /uploads/tech/
CDN域名: cdn.example.com (可选)

其他配置

是否开启回收站: 是
是否允许副分类: 是
前台评论开关: 是
内容审核: 否

第五步:分配管理员

  1. 点击 分配管理员 按钮

  2. 选择用户并设置角色:

    • 站点管理员:完全管理权限
    • 编辑:内容编辑权限
    • 作者:仅能管理自己的内容
  3. 设置权限范围:

    • 可管理的模块
    • 可操作的功能

站点管理

切换站点

方式一:顶部切换

  1. 点击顶部站点选择器
  2. 选择要管理的站点
  3. 自动刷新到该站点的内容

方式二:列表切换

  1. 在站点管理列表
  2. 点击 切换 按钮
  3. 进入该站点管理界面

提示

超级管理员可以切换到任何站点,普通管理员只能切换到有权限的站点

编辑站点

  1. 在站点列表点击 编辑
  2. 修改站点信息
  3. 保存更改

支持修改的内容:

  • 基本信息
  • 域名绑定
  • 模板主题
  • SEO 配置
  • 存储配置

删除站点

警告

删除站点会删除该站点的所有内容和配置,此操作不可恢复!

删除前确认:

  • [ ] 已备份重要数据
  • [ ] 已通知相关管理员
  • [ ] 已解除域名绑定
  • [ ] 已清理相关资源

删除步骤:

  1. 点击 删除 按钮
  2. 输入站点代码确认
  3. 点击 确定删除

禁用/启用站点

禁用站点

  • 前台无法访问
  • 后台可以管理
  • 可以重新启用

启用站点

  • 恢复前台访问
  • 所有功能正常

站点数据隔离

内容隔离

每个站点的内容完全独立:

  • 文章
  • 分类
  • 标签
  • 单页
  • 专题

用户隔离

前台用户

  • 每个站点有独立的用户系统
  • 用户只能在所属站点登录
  • 积分、等级独立计算

后台用户

  • 可以跨站点管理(根据权限)
  • 操作日志记录具体站点
  • 权限精确到站点级别

配置隔离

每个站点独立配置:

  • 网站信息
  • SEO 设置
  • 上传配置
  • 邮件配置
  • 支付配置

域名配置

Nginx 配置

独立域名配置

# 主站
server {
    listen 80;
    server_name www.example.com;
    root /var/www/cms/backend/html/main;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

# 子站 - 独立域名
server {
    listen 80;
    server_name tech.example.com;
    root /var/www/cms/backend/html/tech;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

子域名配置

# 使用通配符域名
server {
    listen 80;
    server_name *.example.com;
    root /var/www/cms/backend/html;
    index index.html;

    location / {
        # 根据子域名自动路由
        set $site "";
        if ($host ~* ^(.+)\.example\.com$) {
            set $site $1;
        }

        try_files /$site$uri /$site$uri/ =404;
    }
}

目录方式配置

server {
    listen 80;
    server_name www.example.com;
    root /var/www/cms/backend/html;
    index index.html;

    # 主站
    location / {
        try_files /main$uri /main$uri/ =404;
    }

    # 子站目录
    location /tech {
        alias /var/www/cms/backend/html/tech;
        try_files $uri $uri/ =404;
    }
}

Apache 配置

虚拟主机配置

# 主站
<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/cms/backend/html/main

    <Directory /var/www/cms/backend/html/main>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# 子站
<VirtualHost *:80>
    ServerName tech.example.com
    DocumentRoot /var/www/cms/backend/html/tech

    <Directory /var/www/cms/backend/html/tech>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

站点复制

复制站点配置

快速创建相似站点:

  1. 选择源站点
  2. 点击 复制配置
  3. 修改新站点信息
  4. 保存创建

复制的内容:

  • ✅ 模板主题
  • ✅ SEO 配置
  • ✅ 上传设置
  • ✅ 分类结构
  • ❌ 文章内容(可选)

批量操作

批量启用/禁用

  1. 勾选多个站点
  2. 选择批量操作
  3. 确认执行

批量修改配置

  1. 选择站点
  2. 设置统一配置
  3. 应用到所有选中站点

站点统计

数据概览

在站点列表查看:

  • 文章数量
  • 分类数量
  • 用户数量
  • 访问量
  • 存储空间

详细报表

点击 统计 查看:

  • 每日访问趋势
  • 热门文章排行
  • 内容发布统计
  • 用户活跃度
  • 搜索关键词

站点迁移

导出站点

  1. 选择要导出的站点

  2. 点击 导出 按钮

  3. 选择导出内容:

    • 站点配置
    • 文章内容
    • 媒体文件
    • 用户数据
  4. 下载导出包

导入站点

  1. 点击 导入站点

  2. 上传导出包

  3. 配置导入选项:

    • 是否覆盖现有内容
    • 用户处理方式
    • 媒体文件处理
  4. 开始导入

最佳实践

站点规划

场景一:企业集团

主站(企业官网)
├── 产品站(独立域名)
├── 新闻站(子域名)
└── 帮助中心(目录)

场景二:内容矩阵

主站(综合资讯)
├── 科技频道
├── 财经频道
├── 娱乐频道
└── 体育频道

场景三:地区分站

主站(全国站)
├── 北京站
├── 上海站
├── 广州站
└── 深圳站

性能优化

数据库优化

  • 为 site_id 字段添加索引
  • 定期清理无用数据
  • 使用分表策略

缓存策略

  • 按站点分组缓存
  • 站点切换时清除缓存
  • 使用 Redis 标签缓存

静态化

  • 各站点独立生成静态页
  • 分别部署到不同服务器
  • 使用 CDN 加速

安全建议

  1. 权限控制

    • 严格控制跨站点权限
    • 定期审查管理员权限
    • 记录跨站点操作日志
  2. 数据隔离

    • 确保站点数据完全隔离
    • API 请求验证站点归属
    • 防止数据泄露
  3. 域名安全

    • 配置 SSL 证书
    • 设置域名白名单
    • 防止域名劫持

常见问题

如何设置站点默认首页?

在站点配置中设置:

首页模板: index.html
默认显示: 文章列表 / 自定义页面

不同站点可以使用相同域名吗?

不可以。每个站点必须有独立的域名或路径。

如何让用户在多个站点通用?

目前站点用户是隔离的。如需通用,可以:

  1. 开发单点登录(SSO)
  2. 使用第三方登录(OAuth)
  3. 同步用户数据

站点数量有限制吗?

理论上没有限制,但建议:

  • 小型服务器:< 10 个站点
  • 中型服务器:< 50 个站点
  • 大型服务器:> 50 个站点

如何备份特定站点?

使用站点导出功能:

# 命令行备份
php think site:export --site=tech --output=backup/tech.zip

相关功能

  • 系统配置
  • 权限管理
  • 静态化生成
  • SEO优化

视频教程

  • 📹 多站点架构介绍
  • 📹 创建和管理站点
  • 📹 域名配置实战
在 GitHub 上编辑此页
Prev
内容管理
Next
AI 文章生成