Banner

mall电商

2026-10-16

第一部分:服务器初始化

  1. 购买云服务器,系统推荐 CentOS7.9
  2. 远程 SSH 登录服务器(Xshell / FinalShell)
  3. 更新系统,安装基础工具
yum update -y
yum install -y wget git
  1. 关闭防火墙(测试环境;正式环境不要关闭,只放行端口)
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(文件存储)

第五部分:导入数据库

  1. 进入 mysql 容器
docker exec -it mysql bash
  1. 登录 MySQL,密码在 docker-compose-env.yml 中,默认 root:root
mysql -uroot -proot
  1. 创建 mall 数据库,执行 SQL 脚本
    源码 SQL 文件路径:
    /mall/sql,包含 mall_schema.sql、mall_table.sql、mall_data.sql
可以用 Navicat 远程连接服务器 MySQL,直接执行这 3 个 SQL 文件导入基础表和测试数据。 导入完成,退出 mysql 容器。

第六部分:部署后台前端 mall-admin-web(Vue)

  1. 安装 Node.js
curl -sL https://rpm.nodesource.com/setup_14.x | bash -
yum install -y nodejs
  1. 进入前端目录
cd ../../mall-admin-web
# 安装依赖
npm install
# 打包生成dist静态文件
npm run build

打包完成后生成 dist 文件夹,里面是后台管理静态页面。

第七部分:Nginx 部署静态页面 + 反向代理

  1. 安装 Nginx
yum install nginx -y
systemctl start nginx
systemctl enable nginx
  1. 将 dist 上传到 nginx 站点目录 /usr/share/nginx/html/admin
  2. 配置 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/;
    }
}
  1. 前台 H5 商城同样打包 mall-portal 的前端页面,新建 Nginx 站点反向代理 8085 端口。
  2. 重载 Nginx:nginx -s reload

第八部分:访问系统 & 登录账号

  1. 后台管理地址:http://mall-admin.xxx.com
    默认管理员账号:admin 密码:123456
  2. 前台商城地址:http://mall.xxx.com
此时可以浏览商品、加入购物车,下单测试(支付是支付宝沙箱,真实支付需要自己开发对接)

第九部分:支付对接(可选,例如对接新中付)

mall 原生没有新中付接口,需要二次开发:

  1. 在新中付服务商申请商户号、API 密钥、回调地址
  2. 在订单模块新增支付渠道:新增【新中付支付】
  3. 编写 API 请求代码:调用新中付统一下单接口,生成支付链接
  4. 编写异步通知接口 notify,接收新中付回调,修改订单支付状态
  5. 开发退款接口,对接新中付退款 API
开发量较大,需要 Java 开发能力;对比新中付 PHP 商城,PHP 版本是写好的直接填密钥。

第十部分:定时任务配置

mall 内置 MQ 延时任务处理超时关闭订单;额外的统计任务可以用 XXL-JOB 或者 Linux crontab。

第十一部分:HTTPS 证书配置(支付必填)

  1. 宝塔 /openssl 申请 Let’s Encrypt 免费 SSL 证书
  2. Nginx 配置 HTTPS 443 端口,强制 http 跳转 https;支付回调要求 HTTPS。


4