同城外卖小程序源码部署教程:本地O2O配送平台环境搭建步骤
一、部署前置说明
同城外卖O2O小程序普遍采用UniApp前端+SpringBoot后端的前后端分离架构,包含用户端、商家端、骑手端小程序以及管理后台。源码部署不是简单上传文件,需要完成服务器环境、数据库初始化、中间件配置、后端打包、前端编译、域名与小程序密钥配置等一系列操作。
中小本地平台优先选择轻量应用服务器,降低初期资源成本,同时需要提前理清依赖组件版本,避免版本不兼容导致订单、地图调度、支付等核心功能异常。
二、服务器与环境依赖清单
基础环境:JDK 1.8 / JDK17、Maven3.6+、MySQL8.0、Redis6.x、Nginx;
配套资源:对象存储用于商品图片、售后凭证;地图服务Key;微信小程序AppID、AppSecret;支付商户密钥;
端口规划:后端服务端口、MySQL 3306、Redis 6379、Nginx 80/443;云服务器安全组提前放行对应端口,生产环境禁止直接对公网开放MySQL、Redis端口。
三、数据库初始化与配置
拿到源码之后,首先导入数据库SQL脚本,脚本一般包含库表结构、基础字典、默认管理员账号。
导入完成后修改后端配置文件,填写数据库地址、账号、密码,同时配置Redis连接信息。
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String,Object> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
serializer.setObjectMapper(mapper);
template.setValueSerializer(serializer);
template.setKeySerializer(new StringRedisSerializer());
template.afterPropertiesSet();
return template;
}
}
数据库配置注意事项:生产环境开启慢查询日志,设置定时备份策略;禁止使用root账号作为业务连接账号,单独创建业务数据库账号,分配最小权限。
四、后端源码打包与服务部署
- 本地开发环境拉取源码,修改application.yml配置:数据库、Redis、对象存储、地图、微信、支付参数;
- Maven执行打包命令
mvn clean package -DskipTests,生成Jar包; - 将Jar包上传到服务器指定目录,使用systemd托管进程,配置开机自启;
- 启动命令示例:
java -jar order-api.jar --spring.profiles.active=prod; - 启动后查看日志,确认端口监听正常、数据库和Redis连接成功。
使用systemd托管可以避免SSH断开进程退出,同时方便统一管理启停、查看崩溃日志。上线前做接口连通性测试,校验下单、骑手位置上报、消息推送等核心接口。
五、UniApp前端编译与小程序发布
前端源码使用HBuilderX打开,分别编译用户端、商家端、骑手端:
- 修改前端全局请求地址,替换为后端公网接口域名;
- 配置小程序AppID、业务域名、request合法域名;
- 执行发行-小程序,生成代码包,上传到微信开发者工具;
- 在微信公众平台配置业务域名、服务器域名、消息推送;
- 管理后台Vue项目打包后交给Nginx托管静态资源,配置反向代理转发后端接口。
Nginx配置要点:静态资源缓存、接口跨域处理、HTTPS证书配置,小程序业务强制要求HTTPS访问。
六、域名、证书与小程序权限配置
域名解析到服务器IP,申请SSL证书,Nginx配置HTTPS。
微信侧需要配置:request合法域名、uploadFile合法域名、downloadFile合法域名;地图、支付、消息推送的密钥需要和后端配置一一对应。
这一步是高频踩坑点:域名未备案、证书过期、域名没有加入白名单,都会出现小程序请求接口失败、图片无法上传、支付调不起等问题。
七、上线前功能校验清单
- 基础链路:用户下单、支付、商家接单、骑手接单、送达、评价、售后;
- 中间件校验:Redis缓存读写、MQ消息投递、图片上传;
- 权限校验:商家只能管理自己店铺,骑手只能查看自己订单;
- 异常场景:支付超时、订单取消、退款回调;
- 监控校验:日志输出正常,异常请求可以捕获。
八、运维与版本迭代方案
部署完成后,搭建基础日志查看机制,保留滚动日志,防止日志占满磁盘;每次版本更新,先备份数据库,再替换Jar包,灰度发布验证。
可以编写简单的shell脚本,实现备份、停止服务、更新包、重启服务的流程,减少重复操作。同时定期巡检服务器CPU、内存、磁盘,外卖午晚高峰关注连接数,防止服务雪崩。
九、总结
同城外卖小程序源码部署,核心流程分为环境准备、数据库初始化、后端打包部署、前端编译发布、域名证书与小程序配置、全链路测试。整套方案依托SpringBoot+UniApp成熟技术栈,适合中小本地O2O配送平台落地。部署过程中大部分故障来源于配置项错误、安全组端口未放行、小程序域名白名单缺失、数据库权限不足。部署完成后不能直接放任运营,需要建立数据库备份、日志监控、版本更新流程,保障订单、支付、配送链路稳定,后续业务增长后再考虑拆分服务、接入负载均衡提升并发能力。