Mok-IM是一款功能全面的即时通讯开源项目,支持私聊/群聊、多媒体消息、红包、朋友圈、小游戏、网易云音乐集成、文件管理及定时消息等。部署需PHP 8.0+、MySQL 5.7+、Node.js 16+及Nginx,通过WebSocket反向代理与PM2守护进程确保稳定运行,适合快速搭建私有化IM平台。
Mok-IM 即时通讯(源码)项目功能特点与部署安装指南
一、功能特点概览
即时通讯
- 支持一对一私聊与群组聊天,可收发文本、图片、文件、语音、视频等全类型多媒体消息
- 内置消息撤回、引用回复、批量删除能力,支持聊天记录全局搜索与一键导出
- 搭载「正在输入...」状态提示,同时提供消息已读/未读回执功能
- 全量支持离线消息同步,多端登录时消息无缝衔接不丢失
社交互动
- 完整的好友管理体系:支持好友添加、备注自定义、分组归类、删除操作;配套全功能群组管理:可自主创建群组、邀请成员、发布群公告、配置多级管理权限
- 内置趣味互动玩法:拼手气红包、平均红包两种发红包模式,支持虚拟礼物赠送,搭配亲密度系统可解锁情感等级、定制专属称呼
- 支持朋友圈动态分享:适配Markdown编辑格式,可携带位置信息,提供多级权限管控,支持内容点赞与评论互动
娱乐与活动
- 内置多款休闲轻游戏:包含猜数字、掷骰子、21点,支持使用G币参与下注
- 配套完整的活动中心:提供每日签到、CDK礼包兑换、G币信用借款功能
- 深度集成网易云音乐:支持站内搜索歌曲、在线试听,可直接分享歌曲卡片到聊天窗口
实用工具
- 智能文件管理:支持大文件分片上传,提供群文件公共共享空间
- 主流短视频平台解析:可解析抖音、B站等平台的视频链接,实现应用内直接预览无需跳转第三方
- 定时消息能力:支持单次定时发送、循环周期发送两种模式
- 内置应用内邮件系统,统一推送官方系统通知
个性化与安全
- 高度可定制的外观体系:支持多主题皮肤切换、动态聊天背景设置、自定义消息气泡与字体样式
- 多层消息安全保障:提供消息上锁功能,支持密码锁定、定时自动销毁、阅后即焚模式,搭载哈希链技术实现消息内容防篡改
- 账号安全防护:支持自主账号注销,搭载异地登录实时检测机制
二、部署与安装指南
1. 环境准备
推荐服务器配置
- CPU:2核,内存:2GB及以上
- 操作系统:CentOS 7+ / Ubuntu 20.04+ / Debian 11+
软件环境要求
| 组件 | 版本要求 | 说明 |
|---|---|---|
| PHP | ≥ 8.0.2 | 需提前开启fileinfo、openssl、mysqli等必要扩展 |
| MySQL | ≥ 5.7 | 也可使用兼容的MariaDB 10.3+版本 |
| Node.js | ≥ 16.0 | 用于支撑WebSocket信令服务运行 |
| Nginx/Apache | 最新稳定版 | 优先推荐使用Nginx |
便捷部署提示:使用宝塔面板可大幅简化环境安装与站点配置流程,降低部署门槛。
2. 源码部署与后端启动
上传与解压源码
将源码包上传至网站指定根目录(示例路径:/www/wwwroot/your_domain)后解压,确认index.php等核心程序文件直接位于根目录下,无多余嵌套层级。
安装Node.js依赖
执行以下命令进入站点目录安装依赖包:
cd /www/wwwroot/your_domain
npm install
若安装速度过慢,可切换至国内镜像源加速:npmmirror 中国镜像站
配置Nginx WebSocket反向代理
在站点配置的server块中添加以下配置内容:
location /ws/ {
proxy_pass http://127.0.0.1:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
使用PM2守护启动WebSocket服务
执行以下命令完成进程守护配置,避免服务随终端关闭停止运行:
npm install pm2 -g
pm2 start server.js --name "Chat-WS-Server"
pm2 startup
pm2 save
3. Web安装与后台配置
运行初始化安装向导
浏览器访问地址 http://your_domain/install/,按照页面提示如实填写数据库连接信息,等待系统自动完成初始化。
登录后台完成配置
- 默认后台账号:
admin,默认初始密码:admin123 - 登录成功后,依次进入「站点配置」→「WebSocket配置」,根据站点类型填写对应连接地址:
- HTTP站点填写:
ws://your_domain/ws/ - HTTPS站点填写:
wss://your_domain/ws/
- HTTP站点填写:
4. 安全与伪静态设置
禁止访问敏感文件(.env、.git、.log)
使用Nginx的场景下,添加以下配置规则拦截访问:
location ~* \.(env|git|log)$ {
return 403;
}
使用Apache的场景下,在.htaccess文件中添加以下规则:
<FilesMatch "\.(env|git|log)$">
Require all denied
</FilesMatch>
5. 部署避坑指南
服务器与安全组配置
- 云服务商控制台的安全组规则需提前放行80、443、22(SSH远程连接)端口;如果需要直接通过IP加端口的方式访问WebSocket服务,还需要额外放行8080端口。
- 2GB内存为项目运行的最低要求,建议配置Swap虚拟内存避免内存不足导致服务崩溃。
软件环境校验
- 部署前确认PHP已成功开启
fileinfo、openssl、mysqli扩展,同时解除proc_open、putenv等函数的禁用限制。 - Node.js推荐使用16.x或18.x稳定版本,版本过高或过低都可能出现依赖安装失败的问题。
- WebSocket服务优先选择Nginx作为Web服务器,Apache对WebSocket协议的兼容性较差,运行不稳定。
文件权限设置
执行以下命令调整站点目录权限,避免权限不足引发程序报错:
chown -R www:www /www/wwwroot/your_domain
chmod -R 755 /www/wwwroot/your_domain
WebSocket服务排查
npm install执行卡顿缓慢时,优先切换国内npm镜像源加速下载。- 必须通过PM2守护WebSocket进程,否则SSH终端关闭后服务会自动终止。
- Nginx反向代理配置中
proxy_http_version 1.1;、proxy_set_header Upgrade $http_upgrade;、proxy_set_header Connection "Upgrade";这三行配置缺一不可,遗漏会导致WebSocket连接失败。
HTTPS与WSS适配规则
如果站点启用HTTPS协议,前端填写的WebSocket连接地址必须为wss://开头的格式,但Nginx配置中的proxy_pass仍然指向本地的http://127.0.0.1:8080即可,无需额外为Node.js服务配置SSL证书。
数据库与后台校验
- 执行安装向导前,检查数据库的用户名、密码、库名配置是否正确,同时确认MySQL服务处于正常运行状态。
- 后台填写的WebSocket访问地址必须和前端实际调用的地址完全一致,包含路径后缀,否则会出现连接异常。
按照以上全流程步骤操作,即可顺利完成Mok-IM即时通讯项目的部署上线。



