准备上线壹软护航陪玩系统?先把这几样环境配好,少踩一半坑
摘要:聊聊部署这套游戏陪玩源码前必须搞定的服务器环境、扩展依赖、支付与IM配置,以及上线当天最容易翻车的几个资料准备细节。
最近有朋友买了壹软护航那套陪玩系统源码,准备自己搭平台。他问我部署前到底要准备哪些环境,有没有什么坑。我正好帮他走了一遍,顺便把踩过的坑和真实准备工作梳理一下,给用得着的兄弟参考。
服务器最低配置和推荐的选择
这套系统后端是 ThinkPHP8.1,核心IM用的是 Workerman,都是吃内存和CPU的主。千万别图便宜买个1核1G的云服务器就开干,Workerman的长连接直接能把小配置机器跑挂。我测试下来,最低也得2核4G内存、5M带宽,如果日活稍微起来,建议直接上4核8G。系统盘40G够用,但后续图片、语音消息会占存储,可以单独挂个数据盘,或者一开始就选80G。
系统要求 CentOS 7.6+ 或者 Ubuntu 20.04,我个人习惯用 CentOS 7.9。如果用宝塔面板,注意 PHP 版本必须选 8.1,别默认装7.4,后面改版本很麻烦。
PHP 扩展和禁用函数,一个都别漏
这套源码依赖不少 PHP 扩展,缺一个都会报稀奇古怪的错。我列一下必须装的和可能漏掉的:
- fileinfo(上传图片、语音验证需要)
- redis(队列、缓存、IM消息中转都用)
- swoole_loader 或扩展?别装错,Workerman 不依赖 Swoole,但系统里有个地方用到 redis 扩展,务必确认
- opcache(可选,但开了性能提升明显)
- gmp(微信支付回调签名验证会用)
另外宝塔默认会禁用一些危险函数,proc_open、proc_get_status、putenv 这几个必须解除禁用,否则 Workerman 启动会报“无法 fork 进程”之类的错。我就因为这个排查了一下午。
数据库和 Redis,提前准备好连接信息
MySQL 5.7 或 8.0 都行,但编码务必选 utf8mb4,要不然用户昵称里带个 emoji 就报错了。提前建好空库,字符集和排序规则都选 utf8mb4_general_ci。
Redis 是必须的,不光存缓存,实时消息的订阅发布全靠它。注意 Redis 别设太复杂的密码,不要有特殊字符,不然 workerman 连接串里容易转义出错。端口默认 6379,安全组要放行但最好限制 IP 访问,或者用内网地址。
域名和 HTTPS,审核和支付的前置条件
系统是多端的,至少得准备三个域名(或子域名):
- 后端 API 接口域名,比如 api.xxx.com
- 前端 H5 域名,比如 h5.xxx.com
- 后台管理域名(可以不对外,但最好独立)
全部要配置 SSL 证书,现在小程序强制要求 HTTPS,而且支付回调也是。宝塔里可以一键申请 Let's Encrypt,但记得提前把域名解析过来。
微信/支付宝支付配置,申请通过前用什么测试?
上线前支付是硬骨头。需要提前去微信支付和支付宝开放平台申请好商户号、APPID、API密钥、证书等。申请周期一般 1-5 个工作日,别等部署完了再弄。
有个小技巧:系统后台里支持“模拟支付”开关,可以在真机调试时先打开,等支付正式审核通过后再切回真实支付,不影响其他功能测试。我帮朋友部署时就是先开着模拟支付,同步等支付审批,两边不耽误。
即时通讯跑起来,设备ID和推送要配好
Workerman 启动很简单,进到项目根目录执行 php think workerman start 就能跑。但要注意端口:默认文字聊天端口是 8282,图片等其他端口也要在安全组放行。如果是用云服务器,别忘了防火墙和安全组两层都要开。
APP 推送方面,系统用到了 UniPush(个推)或类似通道,部署前最好注册好 Unipush 的应用,拿到 AppID、AppKey、MasterSecret 这些,填到后台系统配置里,否则 APP 端收不到订单通知和私信提醒。
用得到的资料和配置信息清单
为了避免部署到一半到处翻资料,我习惯把这些信息整理到一个文档里,大家可以直接参考:
- 服务器 IP、SSH 端口、账号密码
- MySQL 数据库地址、端口、用户名、密码
- Redis 连接地址、端口、密码
- 三个域名的解析记录和 SSL 证书路径(或者宝塔自动部署)
- 微信开放平台 APPID、APPSecret(注意区分开发者和商户平台)
- 支付宝 APPID、商户私钥、支付宝公钥
- UniPush 应用配置信息
- 后台管理默认账号密码(首次登录务必修改)
- 客服链接、用户协议、隐私政策这些文案提前准备好
还有个小坑:源码默认的管理后台地址是 /admin,密码默认可能是客服给的,一定要第一时间改掉,并且限制 IP 访问或者加个二级密码,安全很多。
最后再说两句
这套壹软护航系统功能挺全的,但正因为功能多,部署时要注意的细节也多。环境配好,资料备齐,其实跑起来不复杂。最怕就是支付回调没配置好导致订单状态卡死,或者端口没开导致 IM 消息发不出去,这两种问题上线当天遇到会很抓狂。提前按上面清单检查一遍,基本就能稳稳起步。
