# TSCMS
**Repository Path**: sootou/tscms
## Basic Information
- **Project Name**: TSCMS
- **Description**: TSCMS 是一款基于 ThinkPHP 5.1 框架开发的企业级内容管理系统(CMS),拥有完善的栏目管理、内容模型、模型管理、会员体系、RBAC权限管控、多模块可插拔架构等特性,适用于企业建站、内容门户、内部管理系统等场景,模块开发完全按照Thinkphp开发规范,不过度封装,不增加额外学习成本,让熟悉ThinkPHP的开发者能够无缝上手,轻松进行二次开发与团队协作。
- **Primary Language**: PHP
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-04-17
- **Last Updated**: 2026-11-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TSCMS — ThinkPHP 5.1 企业级内容管理系统
基于 **ThinkPHP 5.1 + Layui** 的企业级内容管理系统,为企业建站、内容门户、内部管理系统等场景提供一站式后台管理解决方案。
---
### 介绍
TSCMS 是一款基于 **ThinkPHP 5.1** 框架开发的企业级内容管理系统(CMS),拥有完善的栏目管理、内容模型、模型管理、会员体系、RBAC权限管控、多模块可插拔架构等特性,适用于企业建站、内容门户、内部管理系统等场景,模块开发完全按照Thinkphp开发规范,不过度封装,不增加额外学习成本,让熟悉ThinkPHP的开发者能够无缝上手,轻松进行二次开发与团队协作。
> 框架底层:ThinkPHP 5.1(LTS)|PHP >= 7.0.0 |MySQL
---
### 项目预览
| | |
| ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
|  |  |
|  |  |
---
### 技术栈
| 分类 | 技术 |
|------|------|
| 后端框架 | PHP 7.0+ / ThinkPHP 5.1 LTS |
| 数据库 | MySQL 5.5+(推荐 5.7+) |
| 后台 UI | LayUI |
| 前台模板 | ThinkPHP 内置模板引擎 + 自定义标签库 `{ts module='content' action="lists"}` |
| 认证机制 | Session 双重签名校验 |
| 权限系统 | 基于菜单节点的 RBAC 模型 |
---
### 核心架构
- **多应用模式** — 后台(admin)、前台(content)、API(api)三个独立应用,共享 common 层
- **可插拔模块** — 功能以模块形式独立安装/卸载,内置友情链接、轮播图、广告、表单收集、支付、采集、小程序等扩展模块
- **内容模型驱动** — 单页、文章、图片三种默认模型,支持自定义模型及扩展字段
- **RBAC 权限体系** — 基于后台菜单的细粒度权限控制,支持角色分组与授权
- **自定义URL规则** — 后台配置 URL 规则模板,支持 `{catdir}/{id}`、`{parentdir}/{catdir}` 等变量
- **碎片功能** — 支持创建自定义碎片功能,包含:文本、编辑器、图片、多图等
---
### 功能列表
#### 内容管理
- 栏目管理(无限级分类,支持单页面、文章列表、外部链接三种栏目类型)
- 模型关联(单页/文章/图片三种默认模型,支持自定义模型及扩展字段)
- 内容关联(缩略图、多图、附件、标签、推荐位、置顶/头条/幻灯)
- 推荐位管理(置顶/头条/幻灯,支持内容推送到多个推荐位)
- 碎片管理(自定义碎片全局调用)
- TAG管理(一键导入,自定义SEO、自定义URL)
- 稿件管理(支持稿件审核、退稿等)
- URL 规则(后台可视化配置,自动生成 SEO 友好的 URL)
- 回收站机制(删除进入回收站,可还原或彻底删除)
- 数据批量替换(一键替换全站或指定表字段内容)
- 更新管理(支持批量更新栏目、批量更新内容、一键生成等)
#### 模块管理(可插拔)
| 模块 | 简介 |
|------|------|
| 友情链接 | 文字/图片链接管理,分组展示 |
| 轮播图 | 多组轮播管理,支持图片跳转链接 |
| 广告管理 | 广告位管理,支持多尺寸广告 |
| 自定表单 | 自定义表单收集用户提交数据 |
| 支付模块 | 集成微信支付、支付宝 |
| 短信模块 | 集成阿里云、腾讯云等 |
| 采集模块 | 远程内容采集与批量入库 |
| 小程序模块 | 微信小程序接口支持 |
#### 扩展功能
- 自定义URL(支持自定义栏目、内容、tag等url规则)
- IP禁止(支持ip黑名单和白名单功能)
- 数据库管理(一键备份和还原)
- 敏感词管理(支持批量添加、自动替换)
- 内链管理(支持批量添加、自动内链)
- 数据库替换(支持指定表、指定字段替换)
- Sitemap生成(一键生成网站地图)
- 钩子管理
#### 会员体系
- 会员注册/登录(找回密码、修改密码)
- 会员积分与余额
- 内容收藏与投稿
- 充值管理
#### 模板与前端
- 多模板风格(前台模板引擎支持,切换风格无需修改代码)
- 自定义标签库(`{ts:content}` 标签灵活调用数据)
- 标签系统(内容关联标签,支持标签聚合页面)
- 静态页生成(支持栏目/内容静态化,提升访问速度)
- 网站地图(自动生成 XML Sitemap)
#### 系统功能
- RBAC 权限管控(基于后台菜单的细粒度权限控制,支持角色分组与授权)
- 附件管理(统一上传管理,支持缩略图生成、图片水印)
- 敏感词过滤(内容发布时自动检测敏感词)
- 操作日志(完整记录后台所有增删改操作)
---
### 🖥 运行环境
| 项目 | 要求 |
|------|------|
| PHP | >= 7.0 推荐 7.0 ~ 7.4) |
| MySQL | >= 5.5(推荐 5.7+) |
| Web 服务器 | Apache 或 Nginx |
**必须开启的 PHP 扩展:**
| 扩展 | 说明 |
|------|------|
| PDO | 数据库连接 |
| pdo_mysql | MySQL 驱动 |
| GD | 缩略图、验证码 |
| mbstring | 多字节字符串处理 |
| OpenSSL | 安全通信 |
| CURL | 远程请求、采集 |
| JSON | 数据交互 |
| Fileinfo | 文件类型检测 |
| ZIP | 模块打包/解压 |
**目录权限要求(需可写):**
| 目录 | 说明 |
|------|------|
| `config/` | 数据库配置文件 |
| `runtime/` | 运行时缓存、日志 |
| `public/upload/` | 附件上传目录 |
| `application/install/` | 安装锁定 |
---
### 🚀 安装指南
#### 方法一:安装向导(推荐)
1. 将源码解压到网站根目录(或 `public/` 子目录)
2. 浏览器访问 `http://您的域名/install.php`(或 `http://您的域名/public/install.php`)
3. 跟随 5 步安装向导:
- **第 1 步** — 阅读并同意许可协议
- **第 2 步** — 环境检测(自动检查 PHP 版本、扩展、目录权限)
- **第 3 步** — 模块选择(勾选需要的扩展模块)
- **第 4 步** — 填写数据库连接信息和管理员账号
- **第 5 步** — 自动安装(建表、注册模块、创建管理员)
4. 安装完成后,访问 `/admin` 进入后台管理
> ⚠️ 安装完成后,系统会在 `application/install/install.lock` 生成锁定文件。如需重装,请手动删除该文件。
#### 方法二:手动安装
1. 创建数据库(UTF-8 编码)
2. 导入 `application/install/install.sql` 到数据库(安装向导会自动执行,也可手动导入)
3. 修改 `config/database.php`,填写数据库连接信息
4. 确保 `runtime/cache/` 目录存在且可写
5. 执行一下sql可插入管理员信息
```
INSERT INTO `ts_admin` VALUES (1, 'admin', '3611c442253471e40a4c00a46c80e91f', 1, 'XdMi6D', '管理员', 1784725935, '127.0.0.1', 'admin@admin.com', 1, 0, 1784700958);
//默认admin/888521;访问 `/admin`,即可登录(ts_改成你自己的前缀)
```
---
### 🔐 默认后台地址
安装完成后,后台管理地址为:
```
http://您的域名/admin
```
使用安装时设置的管理员用户名和密码登录。
---
### 🌐 URL 重写(伪静态)
#### Apache
**根目录部署(推荐):** 将项目根目录指向 Web 根目录,`.htaccess` 内容:
```apache
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_URI} .+/$
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
```
**public 目录部署:** 将 `public/` 设为网站根目录,`public/.htaccess` 内容:
```apache
Options +FollowSymlinks -Multiviews
RewriteEngine On
# 去除 URL 末尾斜杠
RewriteCond %{REQUEST_URI} .+/$
RewriteRule ^(.*)/$ /$1 [L,R=301]
# 真实文件/目录直接放行(含静态HTML)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# 其他交给入口文件
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
```
#### Nginx
**根目录部署:** 项目根目录为 Web 根目录:
```nginx
location / {
# 去除 URL 末尾斜杠(如 news/ → news),统一为无尾斜杠形式
rewrite ^/(.*)/$ /$1 permanent;
if (!-e $request_filename){
rewrite ^(.*)$ /public/index.php?s=$1 last;
break;
}
}
```
**public 目录部署:** `public/` 为 Web 根目录:
```nginx
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
```
> 提示:Nginx 用户请将对应的 `(public/)nginx.htaccess` 中的规则配置到站点 `server` 块中。ThinkPHP 5.1 的 URL 伪静态后缀默认为 `.html`,通过 `url_html_suffix` 配置。
---
### 📂 目录结构
```
├─ application 应用目录
│ ├─ admin 后台管理模块(登录、系统配置、附件、RBAC)
│ ├─ api API 接口模块(短信/邮件验证码、图形验证码)
│ ├─ common 公共基类模块(Base、Adminbase、Indexbase)
│ ├─ content 内容模型模块(核心:栏目、模型、内容管理)
│ ├─ member 会员管理模块(注册、登录、资料)
│ ├─ install 安装向导模块
│ ├─ collect 采集模块(可插拔)
│ ├─ pay 支付模块(可插拔)
│ ├─ formguide 表单引导模块(可插拔)
│ ├─ link 友情链接模块(可插拔)
│ ├─ sms 短信模块(可插拔)
│ ├─ swiper 轮播图模块(可插拔)
│ ├─ ad 广告模块(可插拔)
│ ├─ xiaochengxu 小程序模块(可插拔)
│ ├─ common.php 公共函数文件
│ └─ tags.php 应用行为扩展定义文件
│
├─ config 应用配置目录
│ ├─ app.php 应用配置(模块、URL、分页)
│ ├─ database.php 数据库配置(安装时自动生成)
│ ├─ template.php 模板引擎配置
│ ├─ cache.php 缓存配置
│ ├─ session.php Session 配置
│ ├─ hook.php 钩子定义
│ └─ log.php 日志配置
│
├─ route 路由定义目录
│ └─ route.php 前台 SEO 路由规则
│
├─ public WEB 目录(对外访问)
│ ├─ index.php 入口文件
│ ├─ install.php public 安装入口
│ ├─ .htaccess Apache 重写规则
│ ├─ nginx.htaccess Nginx 重写规则参考
│ ├─ upload/ 附件上传目录
│ ├─ static/ 静态资源(JS/CSS)
│ └─ html/ 静态化页面目录(启用静态化时生成)
│
├─ templates 前台模板目录
│ └─ default/ 默认模板风格
│
├─ thinkphp 框架系统目录
├─ extend 扩展类库目录
├─ vendor 第三方 Composer 依赖
├─ runtime 运行时目录(缓存、日志、编译)
│
├─ install.php 安装入口(根目录)
├─ .htaccess 根目录 Apache 重写规则
├─ nginx.htaccess 根目录 Nginx 重写规则参考
├─ composer.json Composer 定义文件
└─ index.php 根目录入口文件
```
---
### 🙏 特别鸣谢
- [ThinkPHP](https://www.thinkphp.cn/)
- [LayUI](https://layui.dev/)
- [PHPcms](https://www.phpcms.vip/)