启航电商ERP系统部署说明文档

  

  

 

一、服务器环境部署

1.1 MySQL

以ubuntu系统为例

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Andy_123'; FLUSH PRIVILEGES;

CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Andy_123'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;

编辑 MySQL 配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,找到 bind-address 行,并将其修改为 0.0.0.0 以允许从所有 IP 访问

bind-address = 0.0.0.0

1.2 Docker

1.2.1 使用国内镜像安装 Docker

sudo systemctl start docker sudo systemctl enable docker

1.2.2 配置Docker国内源

{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io", "https://dockerhub.timeweb.cloud" ] }

1.3 Redis7

1.3.1、安装 Redis 7

Redis 7 可能不在默认的 Ubuntu 存储库中,因此你可能需要添加 Redis 官方的 PPA(个人包档案)来安装最新版本。以下是步骤:

添加 Redis 官方 PPA

1.3.2、检查 Redis 版本

确认安装的 Redis 版本是否为 7:redis-server --version

1.3.3、配置 Redis

Redis 配置文件通常位于 /etc/redis/redis.conf。你可以根据需要编辑该文件来调整 Redis 的配置:

sudo vim /etc/redis/redis.conf

常见的配置项包括:

1.3.4、启动和管理 Redis 服务

ls /lib/systemd/system/redis-server.service

1.3.5、连接

redis-cli -h 127.0.0.1 -p 6379

二、应用环境部署

2.1 Docker Nacos

2.1.1 运行Nacos

docker run -d \ --name my_nacos2.2.0 \ --network host \ -e MODE=standalone \ nacos/nacos-server:v2.2.0

2.2.2 配置Nacos DataID

``` spring: redis: host: 127.0.0.1 port: 6379 database: 0 timeout: 10s lettuce: pool: # 连接池中的最小空闲连接 min-idle: 0 # 连接池中的最大空闲连接 max-idle: 8 # 连接池的最大数据库连接数 max-active: 8 # #连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms datasource: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/qihangniu-erp?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: Andy_123

# mybatis 日志 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开启sql日志 ```

2.2 数据库导入

数据库脚本中包含演示数据,演示之后请清空数据。

二、Java项目部署

2.1 打包环境

2.2 项目打包

maven clean package

2.3 项目部署到服务器并使用Docker运行

上传文件打包文件到服务器

所有微服务原始路径:/opt/qihangerp

1、 gateway

网关微服务,网关端口8088必须要能访问,前端通过8088端口其他微服务

docker run --name gateway \ --network host \ -e SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=127.0.0.1:8848 \ -e SPRING_CLOUD_NACOS_DISCOVERY_USERNAME=nacos \ -e SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD=qihangerp@123 \ -d gateway

2.5.2 sys-api

系统及认证微服务

docker run --name sys-api \ --network host \ -e SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=127.0.0.1:8848 \ -e SPRING_CLOUD_NACOS_DISCOVERY_USERNAME=nacos \ -e SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD=nacos \ -e SPRING_CLOUD_NACOS_CONFIG_SERVER-ADDR=127.0.0.1:8848 \ -e SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos \ -e SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos \ -d sys-api

2.5.3 oms-api

OMS模块微服务

docker run --name oms-api \ --network host \ -e SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=127.0.0.1:8848 \ -e SPRING_CLOUD_NACOS_DISCOVERY_USERNAME=nacos \ -e SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD=nacos \ -e SPRING_CLOUD_NACOS_CONFIG_SERVER-ADDR=127.0.0.1:8848 \ -e SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos \ -e SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos \ -d oms-api

2.5.4 wms-api

仓库模块微服务

docker run --name wms-api \
  --network host \
  -e SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=127.0.0.1:8848 \
  -e SPRING_CLOUD_NACOS_DISCOVERY_USERNAME=nacos \
  -e SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD=nacos \
  -e SPRING_CLOUD_NACOS_CONFIG_SERVER-ADDR=127.0.0.1:8848 \
  -e SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos \
  -e SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos \
  -d wms-api
2.5.5 tao-api

SCM模块微服务

docker run --name scm-api \
  --network host \
  -e SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=127.0.0.1:8848 \
  -e SPRING_CLOUD_NACOS_DISCOVERY_USERNAME=nacos \
  -e SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD=nacos \
  -e SPRING_CLOUD_NACOS_CONFIG_SERVER-ADDR=127.0.0.1:8848 \
  -e SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos \
  -e SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos \
  -d scm-api
2.5.6 pdd-api

拼多多模块微服务

docker run --name pdd-api \
  --network host \
  -e SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=127.0.0.1:8848 \
  -e SPRING_CLOUD_NACOS_DISCOVERY_USERNAME=nacos \
  -e SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD=nacos \
  -e SPRING_CLOUD_NACOS_CONFIG_SERVER-ADDR=127.0.0.1:8848 \
  -e SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos \
  -e SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos \
  -d pdd-api

三、前端项目部署

3.1 配置vue项目

  devServer: {
    host: '0.0.0.0',
    port: port,
    open: true,
    proxy: {
      [process.env.VUE_APP_BASE_API]: {
        target: `http://localhost:8088`,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''
        }
      }
    },

npm run build:prod

3.2 Nginx部署

3.2.1 拉取nginx镜像

docker pull nginx

3.2.2 上传文件

3.2.3 创建挂载目录

​ 赋权限:

chmod 777 /opt/qihangerp/nginx/nginx_logs

chmod 777 /opt/qihangerp/nginx/nginx_conf

chmod 777 /opt/qihangerp/nginx/dist

创建容器并挂载目录

挂载操作会直接将两个文件夹内容同步,若是直接用宿主机的空文件夹直接挂载到容器内部的配置文件目录上,会造成nginx容器配置文件目录被同步为空文件夹,进而导致容器启动失败。故我们需要先启动一遍容器,将初始配置拷贝出来。

启动容器并拷贝出nginx初始配置

docker run -itd --name nginx -p 80:80 nginx

删除容器

docker rm -f nginx

修改Nginx配置
# 前端web配置
location / {
        #root   /opt/qihangerp/nginx/dist;
        root /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
# 增加后台api转发
=======
##### 修改Nginx配置(增加vue404、增加后台api转发)

location /prod-api/ {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://localhost:8088/;
}
重新运行容器并挂载目录
docker run -itd --name nginx --network host \
-v /opt/qihangerp/nginx/dist:/usr/share/nginx/html \
-v /opt/qihangerp/nginx/nginx_conf/nginx:/etc/nginx \
-v /opt/qihangerp/nginx/nginx_logs:/var/log/nginx nginx
访问web

http://ip