版本: 1.0.0
运行环境: PHP >= 8.0 | MySQL/MariaDB | ThinkPHP 8.x
官网: https://meimiao.de
简介
朋友圈是一个轻量级的自托管社交内容发布平台,类似于"朋友圈"或微博。支持多种内容类型(文字、图片、视频、音乐、长文),具备用户注册、评论、点赞、消息通知等完整社交功能,以及强大的后台管理系统。
适合个人博客、小型社区、团队内部分享等场景使用。
功能概览
内容发布
| 类型 | 说明 |
|---|---|
| 纯文字 | 简短文字动态 |
| 图片 | 最多 15 张图片,支持上传和外链,自动压缩转 WebP |
| 视频 | 支持上传或填写视频地址,自动生成封面截图 |
| 音乐 | 填写音乐链接或网易云音乐 ID,自动获取歌曲信息 |
| 长文 | 支持标题、封面图、富文本内容的长篇文章 |
附加功能:
- 标签/话题(最多 10 个)
- 定时发布
- 匿名发布
- 公开/私密切换
- 草稿保存
- 置顶(管理员全局置顶 + 用户个人置顶)
- 广告标记(可设置跳转链接)
评论系统
- 登录用户评论(自动填充用户信息)
- 访客评论(可选开启,需填写昵称和邮箱)
- 楼中楼回复
- 评论审核(可选开启)
- 敏感词过滤 + 用户黑名单
- @提及通知
- 按文章开关评论
点赞系统
- 登录用户和访客均可点赞
- 防重复点赞
- 点赞通知推送给文章作者
用户系统
- 注册(可选开启,支持邮箱验证码)
- 登录(速率限制防暴力破解)
- 密码找回(邮箱验证码)
- 个人主页(头像、封面、签名、网址)
- 邮件通知开关(点赞、评论、回复)
- 全设备退出登录
- 旧密码自动升级 bcrypt 加密
消息通知
- 评论通知
- 点赞通知
- @提及通知
- 系统公告
- 审核结果通知
- 邮件推送(可选)
音乐系统
- 站点背景音乐(随机播放)
- 网易云音乐集成(输入歌曲 ID 自动获取信息和播放链接)
后台管理
访问地址:/admin/
仪表盘
- 用户总数、文章总数、评论总数、上传容量统计
- 今日新增文章/评论数
- 待审核文章/评论数量
- 最新用户和文章列表
- 版本更新提示
基本设置
- 站点名称、副标题
- Favicon、Logo、首页背景图(支持上传)
- 站点签名、版权信息、备案号
- 每页显示数量(文章/评论)
- 全站访问密码
- 背景音乐
权限设置
站点开关:
- 站点开关(关闭后显示维护页)
- 注册开关
- 登录开关
内容与互动:
- 关注可见(仅关注者可看内容)
- 匿名发布开关
- 图片自动压缩
- 访客评论开关
- 评论审核开关
- 文章审核开关
功能开关:
- 友链功能
- 搜索引擎收录
- 自定义域名
- 日间/夜间模式默认值
- 回到顶部按钮
- 搜索功能
- 视频自动播放
- 注册邮箱验证
- 头像形状(圆形/方形)
- 邮件推送通知
- 禁用右键(内容保护)
内容管理
- 置顶文章管理
- 草稿功能开关
- 标签功能开关
- 评论安全设置(敏感词、黑名单)
文章审核
- 待审核/已通过/已拒绝/草稿列表
- 通过、拒绝、删除、编辑操作
- 审核结果自动通知作者
评论审核
- 待审核/已通过/已拒绝列表
- 通过、拒绝、删除操作
- 审核结果自动通知评论者
用户管理
- 用户列表查看和编辑
友链管理
- 友情链接增删改查(名称、网址、图片)
表情管理
- 自定义表情/贴图
- 支持触发码、分类、排序、启用/禁用
邮件设置
- 支持 SMTP 和阿里云邮件两种驱动
- SMTP:主机、端口、SSL/TLS、账号、密码、发件人
- 阿里云:AccessKey ID/Secret、发件人
- 发送测试邮件验证配置
邮件模板
- 自定义邮件模板,支持变量替换
- 注册验证码、密码重置验证码等模板
云存储设置
支持三种云存储后端:
| 服务 | 配置项 |
|---|---|
| 又拍云 | Bucket、操作员、密码、域名 |
| 阿里云 OSS | AccessKey、Endpoint、Bucket、域名 |
| S3 兼容 | AccessKey、Endpoint、Region、Bucket、域名(支持 AWS S3、Cloudflare R2 等) |
- 可选保留本地副本
- 连接测试功能
- 保存时需验证管理员密码
安全设置
- 二步验证(2FA):
- 邮箱验证码方式
- TOTP 方式(兼容 Google Authenticator 等)
- TOTP 密钥生成和重新生成
- 二维码扫描配置
系统通知
- 向所有用户或指定用户发送系统公告
上传文件管理
- 查看所有已上传文件(大小、时间、使用状态)
- 文件引用追踪(关联文章/用户/配置)
- 安全删除(仅允许删除未引用的文件)
- 需验证管理员密码
日志管理
- 操作日志(记录所有管理操作)
- 登录日志(记录登录尝试)
数据库备份
- 生成带时间戳的 SQL 备份文件
- 从备份恢复(需验证管理员密码)
- 删除旧备份
配置版本
- 创建配置快照(带备注)
- 设置保存前自动创建快照
- 回滚到历史版本(需验证管理员密码)
安装指南
环境要求
- PHP >= 8.0
- MySQL >= 5.7 或 MariaDB >= 10.2
- PDO MySQL 扩展
- JSON 扩展
runtime/目录可写
安装步骤
- 将程序文件上传到服务器 Web 目录
- 配置 Web 服务器,将网站根目录指向
public/文件夹 - 访问网站首页,系统自动跳转到安装页面
- 按照安装向导操作:
- 第一步: 环境检测(自动检查 PHP 版本和必要扩展)
- 第二步: 填写数据库信息(主机、端口、用户名、密码、数据库名)
- 第三步: 创建管理员账号(用户名、密码、邮箱)和站点名称
- 第四步: 安装完成
Web 服务器配置
Nginx:
server {
listen 80;
server_name yourdomain.com;
root /path/to/public;
index index.php;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Apache:
确保开启 mod_rewrite 模块,程序自带 .htaccess 文件。
安装后建议
- 登录后台
/admin/,完善基本设置 - 配置邮件服务(用于注册验证、密码找回、通知推送)
- 配置云存储(可选,用于大文件存储)
- 开启二步验证(提升后台安全性)
- 根据需要调整权限设置
目录结构
├── app/
│ ├── controller/ # 控制器
│ │ ├── admin/ # 后台控制器
│ │ ├── api/ # 前台 API 控制器
│ │ └── server/ # 服务端 API 控制器
│ ├── middleware/ # 中间件
│ ├── model/ # 数据模型
│ ├── service/ # 业务服务层
│ ├── traits/ # Trait 复用
│ └── view/ # 模板文件
│ ├── admin/ # 后台模板
│ ├── component/ # 组件模板
│ └── edit/ # 编辑器模板
├── config/ # 配置文件
├── database/ # 数据库 SQL 文件
├── public/ # Web 入口目录
│ ├── assets/ # 静态资源(CSS/JS/图片)
│ └── upload/ # 上传文件目录
├── route/ # 路由定义
└── runtime/ # 运行时目录(日志/缓存)
路由说明
前台页面
| 路径 | 说明 |
|---|---|
/ |
首页(内容流) |
/home |
主页 |
/user/<hash> |
用户个人主页 |
/edit |
发布新内容 |
/edit/<cid> |
编辑已有内容 |
/view/<cid> |
文章详情页 |
/setup |
个人设置 |
/repass |
密码找回 |
/sticky |
置顶内容页 |
API 接口
| 路径 | 方法 | 说明 |
|---|---|---|
/api/login |
POST | 用户登录 |
/api/register |
POST | 用户注册 |
/api/repass |
POST | 密码找回 |
/api/load-more |
POST | 加载更多内容 |
/api/article/save |
POST | 发布/编辑文章 |
/api/article/delete |
POST | 删除文章 |
/api/article/privacy |
POST | 切换文章隐私 |
/api/article/pin |
POST | 管理员置顶 |
/api/comment/submit |
POST | 提交评论 |
/api/comment/load |
POST | 加载评论 |
/api/like/toggle |
POST | 切换点赞 |
/api/user/update |
POST | 更新用户信息 |
/api/user/avatar |
POST | 上传头像 |
/api/upload/image |
POST | 上传图片 |
/api/upload/video |
POST | 上传视频 |
/api/music/random |
POST | 随机背景音乐 |
/api/message/operate |
POST | 消息操作 |
安全特性
- 速率限制: 登录、注册、密码找回、评论等接口均有 IP/用户级频率限制
- 密码安全: bcrypt 加密,旧 MD5 密码自动升级
- 会话安全: HttpOnly Cookie + SameSite 保护,登录时重新生成 Session ID
- CSRF 防护: 表单隐藏 Token 验证
- XSS 防护: 内容 HTML 净化,非文章内容标签剥离
- SQL 注入防护: 全程参数化查询,安装时标识符校验
- SSRF 防护: IP 地理位置查询屏蔽内网地址,音乐代理域名白名单
- 文件上传安全: MIME 类型验证、图片尺寸检查、图片净化处理
- 后台 2FA: 支持 TOTP 和邮箱验证码两种二步验证方式
- 敏感操作验证: 云存储、数据库恢复、配置回滚等操作需验证管理员密码
- 配置版本控制: 设置变更前自动快照,支持一键回滚
更新机制
程序内置版本更新检查:
- 启动时自动检查中心服务器是否有新版本
- 检查结果缓存 1 小时,避免频繁请求
- 后台首页显示更新提示横幅
- 安装时自动上报域名、IP、版本等信息到中心服务器
常见问题
安装后无法访问
检查 Web 服务器配置是否正确指向 public/ 目录,确保 URL 重写规则已启用。
图片上传失败
检查 public/upload/ 目录是否有写入权限,以及 PHP upload_max_filesize 和 post_max_size 配置。
邮件发送失败
在后台邮件设置中配置 SMTP 或阿里云邮件服务,使用"发送测试邮件"功能验证配置。
忘记管理员密码
通过数据库直接修改 user 表中管理员用户的 password 字段,使用 PHP 的 password_hash() 生成 bcrypt 哈希值。
如何开启云存储
后台 > 云存储设置 > 选择存储类型 > 填写配置信息 > 输入管理员密码 > 保存。建议同时开启"保留本地副本"。
许可证
保留所有权利。未经许可不得用于商业用途。
💰 此内容需要支付 200 鱼丸才能查看
请先登录
























