mall电商
第一部分:服务器初始化
- 购买云服务器,系统推荐 CentOS7.9
- 远程 SSH 登录服务器(Xshell / FinalShell)
- 更新系统,安装基础工具
yum update -y
yum install -y wget git
- 关闭防火墙(测试环境;正式环境不要关闭,只放行端口)
systemctl stop firewalld
systemctl disable firewalld
第二部分:安装 Docker + Docker Compose
# 安装docker
yum install -y docker-ce
systemctl start docker
systemctl enable docker
# 安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证
docker -v
docker-compose -v
第三部分:拉取 mall 项目源码
# 克隆源码到服务器
git clone https://gitee.com/macrozheng/mall.git
cd mall
目录结构说明: mall-admin:后台管理后端 mall-portal:前台商城后端 mall-admin-web:Vue 前端后台页面 document/docker:docker-compose 配置文件
第四部分:进入 docker 目录,启动全套容器
cd document/docker
# 执行一键启动,自动下载镜像、创建容器
docker-compose -f docker-compose-env.yml -f docker-compose-app.yml up -d
说明: docker-compose-env.yml:数据库、Redis、ES、MQ 等中间件 docker-compose-app.yml:mall-admin、mall-portal 应用服务 -d后台守护运行
等待容器启动(约 5~10 分钟)
查看容器运行状态:
docker ps
需要看到这些容器全部 UP:mysql、redis、elasticsearch、rabbitmq、mall-admin、mall-portal、minio(文件存储)
第五部分:导入数据库
- 进入 mysql 容器
docker exec -it mysql bash
- 登录 MySQL,密码在 docker-compose-env.yml 中,默认 root:root
mysql -uroot -proot
- 创建 mall 数据库,执行 SQL 脚本
源码 SQL 文件路径:/mall/sql,包含mall_schema.sql、mall_table.sql、mall_data.sql
可以用 Navicat 远程连接服务器 MySQL,直接执行这 3 个 SQL 文件导入基础表和测试数据。 导入完成,退出 mysql 容器。
第六部分:部署后台前端 mall-admin-web(Vue)
- 安装 Node.js
curl -sL https://rpm.nodesource.com/setup_14.x | bash -
yum install -y nodejs
- 进入前端目录
cd ../../mall-admin-web
# 安装依赖
npm install
# 打包生成dist静态文件
npm run build
打包完成后生成 dist 文件夹,里面是后台管理静态页面。
第七部分:Nginx 部署静态页面 + 反向代理
- 安装 Nginx
yum install nginx -y
systemctl start nginx
systemctl enable nginx
- 将 dist 上传到 nginx 站点目录
/usr/share/nginx/html/admin - 配置 Nginx 反向代理,把 /api 请求转发到 mall-admin 服务(端口 8080)
mall-admin 后端地址:服务器 IP:8080 mall-portal 前台后端地址:服务器 IP:8085
示例 Nginx 配置:
server {
listen 80;
server_name mall-admin.xxx.com; #你的后台域名
root /usr/share/nginx/html/admin;
index index.html;
location /api/ {
proxy_pass http://127.0.0.1:8080/api/;
}
}
- 前台 H5 商城同样打包 mall-portal 的前端页面,新建 Nginx 站点反向代理 8085 端口。
- 重载 Nginx:
nginx -s reload
第八部分:访问系统 & 登录账号
- 后台管理地址:
http://mall-admin.xxx.com
默认管理员账号:admin 密码:123456 - 前台商城地址:
http://mall.xxx.com
此时可以浏览商品、加入购物车,下单测试(支付是支付宝沙箱,真实支付需要自己开发对接)
第九部分:支付对接(可选,例如对接新中付)
mall 原生没有新中付接口,需要二次开发:
- 在新中付服务商申请商户号、API 密钥、回调地址
- 在订单模块新增支付渠道:新增【新中付支付】
- 编写 API 请求代码:调用新中付统一下单接口,生成支付链接
- 编写异步通知接口 notify,接收新中付回调,修改订单支付状态
- 开发退款接口,对接新中付退款 API
开发量较大,需要 Java 开发能力;对比新中付 PHP 商城,PHP 版本是写好的直接填密钥。
第十部分:定时任务配置
mall 内置 MQ 延时任务处理超时关闭订单;额外的统计任务可以用 XXL-JOB 或者 Linux crontab。
第十一部分:HTTPS 证书配置(支付必填)
- 宝塔 /openssl 申请 Let’s Encrypt 免费 SSL 证书
- Nginx 配置 HTTPS 443 端口,强制 http 跳转 https;支付回调要求 HTTPS。