基于 PHP + SQLite 的多人聊天室,支持匿名聊天、房间管理、管理员后台。
- 用户注册/登录(支持邀请码注册模式)
- 公开/匿名房间聊天(房间密码保护)
- 在线用户列表(含地理位置信息)
- 消息撤回(自己或管理员均可)
- 表情选择器(100+ Emoji)
- 消息回复(引用回复)
- 消息搜索(高亮匹配)
- 系统公告栏
- 深色/浅色/跟随系统主题切换
- 骨架加载占位符
- Toast 通知(替代 alert)
- 回到底部按钮
- 可折叠在线用户面板
- 通知声音(Web Audio API)
- 管理员后台(用户管理、房间管理、密码设置、邀请码、昵称审核、公告、系统设置)
把 public/ 目录下的 所有文件和文件夹 上传到虚拟主机的 public_html 目录。
推荐的文件结构:
public_html/
├── .htaccess
├── index.php ← 聊天室主页
├── login.php ← 登录页
├── admin.php ← 管理后台
├── api/ ← PHP 后端接口
│ ├── db.php
│ ├── helpers.php
│ ├── auth.php
│ ├── rooms.php
│ ├── messages.php
│ ├── admin.php
│ ├── announcements.php
│ └── config.php
├── css/
│ └── style.css
├── js/
│ ├── theme.js
│ ├── chat.js
│ └── admin.js
├── data/ ← 数据库存放位置(自动创建)
│ └── .htaccess ← 已配置禁止访问
├── demo.html ← 主题演示
└── test_theme.html ← 主题测试
data/目录需要写入权限(PHP 会在里面自动创建chatroom.db)- Linux:
chmod 755 data/(确保属主是 www 用户) - 如果遇到数据库无法创建,尝试
chmod 777 data/
- Linux:
- PHP 7.4 或更高版本
- 需要启用 SQLite3 扩展(大多数虚拟主机默认开启)
- 不需要 MySQL/MariaDB
- 不需要 Composer 或任何第三方库
浏览器访问你的域名:
https://你的域名.com/
首次访问时系统自动创建:
| 账号 | 密码 |
|---|---|
| admin | admin123 |
建议登录后立即修改密码。
数据库文件位于 data/chatroom.db,定期下载此文件即可备份所有聊天记录和用户数据。
Q: 页面显示 500 错误?
A: 检查 PHP 版本是否 ≥ 7.4,检查 data/ 目录是否有写入权限。
Q: 登录后一直跳转到登录页?
A: 检查虚拟主机是否支持 Cookie。某些主机需要设置 session.save_path。
Q: 消息发送后看不到?
A: 检查 data/ 目录权限,PHP 需要写入数据库文件。
Q: 如何修改站点名称?
A: 编辑 index.php 中的标题文字。
Q: 如何关闭注册? A: 登录管理后台 → 系统设置 → 开启邀请码注册模式。
- 后端: PHP 7.4+ / SQLite 3
- 前端: 原生 JavaScript (ES6+)
- 通信: AJAX 轮询(每2秒)
- 样式: CSS 自定义属性(主题变量)
- 数据库: SQLite(单文件,无需配置)
本项目纯前端 + PHP,无需构建工具。直接在本地 PHP 开发服务器运行即可:
cd public/
php -S localhost:8000当前使用 AJAX 轮询(最长2秒延迟),如需真正实时可集成 Pusher:
- 注册 https://pusher.com (免费额度)
- PHP 端发消息时调用 Pusher API
- 前端 JS 订阅频道接收实时推送
MIT