---
title: 如何通过远程服务器实现Web应用部署-官方技术文章-鲲鹏社区
description: 以Web应用为例，帮助开发者掌握如何通过远程实验室部署和运行应用
keywords: Web,如何通过远程,服务器实现,应用部署,官方技术文章,鲲鹏社区,环境申请与访问,依赖软件部署
url: https://www.hikunpeng.com/developer/techArticles/20230427-15?envFlag=1
section: (其他)
---

# 如何通过远程服务器实现Web应用部署-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20230427-15?envFlag=1
描述: 以Web应用为例，帮助开发者掌握如何通过远程实验室部署和运行应用
关键词: Web,如何通过远程,服务器实现,应用部署,官方技术文章,鲲鹏社区,环境申请与访问,依赖软件部署

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

如何通过远程服务器实现Web应用部署

如何通过远程服务器实现Web应用部署

故障案例

发表于 2023/04/27


本章节以 github上比较热门的开源项目mall为例进行Web应用部署介绍。项目路径见：https://github.com/macrozheng/mall [了解详情](https://github.com/macrozheng/mall)，源码预置到远程服务器的/root/mall目录。

mall项目是一套电商系统，包括前台商城系统及后台管理系统，基于SpringBoot + MyBatis 实现。 前台商城系统包含首页门户、商品推荐等模块。后台管理系统包含商品管理、订单管理等模块。

## 环境申请与访问

按照远程服务器操作步骤申请远程服务器环境。申请通过后，鲲鹏社区将环境信息到您填写的邮箱地址。

## 应用部署

### 1. 依赖软件部署

本小节以mall在Linux环境下的部署（基于Docker容器）进行说明。也可以参考项目部署说明 [了解详情](https://www.macrozheng.com/mall/deploy/mall_deploy_docker.html#docker%E7%8E%AF%E5%A2%83%E5%AE%89%E8%A3%85)

（1）Docker环境安装

```
yum install -y docker
```

```
systemctl start docker
```

（2）MySQL安装

a. 下载镜像

```
docker pull mysql:8.0.32
```

b.  启动MySQL服务

```
mkdir -p /mydata/mysql
```

```
mkdir -p /mydata/mysql/log
```

```
mkdir -p /mydata/mysql/conf/conf.d
```

```
mkdir -p /mydata/mysql/data
```

```
docker run -p 3306:3306 --name mysql \
```

```
-v /mydata/mysql/log:/var/log/mysql \
```

```
-v /mydata/mysql/data:/var/lib/mysql \
```

```
-v /mydata/mysql/conf:/etc/mysql \
```

```
-e MYSQL_ROOT_PASSWORD=root  \
```

```
-d mysql:8.0.32
```

c. 将项目源码/root/mall/document/sql/mall.sql拷贝到 “/”目录

```
docker cp /root/mall/document/sql/mall.sql mysql:/
```

d. 创建数据库和用户：

```
docker exec -it mysql /bin/bash
```

```
mysql -uroot -proot --default-character-set=utf8
```

```
create database mall character set utf8;
```

e. 将sql文件导入到数据库

```
use mall;
```

```
source /mall.sql;
```

f.  创建账号：

```
create user 'reader'@'%' identified with mysql_native_password by '123456';
```

```
grant all privileges on *.* to 'reader' @'%';
```

（3）Redis安装

a. 下载镜像

```
docker pull redis:7
```

b. 启动redis 服务

```
docker run -p 6379:6379 --name redis \
```

```
-v /root/mall/redis/conf:/usr/local/etc/redis \
```

```
-v /mydata/redis/data:/data \s
```

```
-d redis:7 redis-server /usr/loca/etc/redis/redis.conf --appendonly yes
```

（4） Nginx安装

a. 下载镜像

```
docker pull nginx:1.22
```

b. 启动nginx 服务

```
 docker run -p 80:80 --name nginx \
```

```
-v /mydata/nginx/html:/usr/share/nginx/html \
```

```
-v /mydata/nginx/logs:/var/log/nginx  \
```

```
-d nginx:1.22
```

（5）RabbitMQ安装a. 下载镜像

```
docker pull rabbitmq:3.9-management
```

b. 启动RabbitMQ

```
docker run -p 5672:5672 -p 15672:15672 --name rabbitmq \
```

```
-v /mydata/rabbitmq/data:/var/lib/rabbitmq \
```

```
-d rabbitmq:3.9-management
```

### 2. SpringBoot应用部署

（1）源码获取，源码已预置到远程服务器的/root/mall目录

（2）修改配置文件

注释项目根目录下的pom.xml中的docker.host属性：

```
<!--<docker.host>http://192.168.3.101:2375</docker.host%3E--%3E
```

（3）	maven 编译打包

a. 编译打包

```
yum install -y maven
```

```
cd /root/mall && mvn package
```

b. 查看打包所有应用镜像

（4）	启动与验证

a. 部署mall-admin

```
docker run -p 8080:8080 --name mall-admin \
```

```
--link mysql:db \
```

```
--link redis:redis \
```

```
-v /etc/localtime:/etc/localtime \
```

```
-v /mydata/app/admin/logs:/var/logs \
```

```
-d mall/mall-admin:1.0-SNAPS
```

b. 开启防火墙

```
firewall-cmd --zone=public --add-port=8080/tcp --permanent
```

```
firewall-cmd –-reload
```

c. 验证访问接口

在浏览器访问首页：http://172.36.86.41:8080/ [了解详情](http://172.36.86.41:8080)，请根据实际情况输入对应的IP地址。

### 3. 前端项目部署

（1）prod.env.js文件的修改

a. 执行

```
cd /root/mall/mall-admin-web/config
```

b. 执行 vim prod.env.js 按“i”进入编辑模式，将BASE_API变量的IP地址替换成实际服务器IP地址。

（2）前端代码打包与部署

a. 打包代码

```
cd /root/mall/mall-admin-web/
```

```
npm install --unsafe-perm
```

```
npm run build
```

b. 压缩并部署到Nginx

```
cd /root/mall/mall-admin-web/
```

```
tar -czf dist.tar.gz dist
```

```
cp dist.tar.gz /mydata/nginx
```

```
cd /mydata/nginx
```

```
rm -rf html
```

```
tar -xzf dist.tar.gz
```

```
mv dist html
```

```
docker restart mall-admin
```

```
docker restart nginx
```

c. 验证页面

在浏览器访问首页并登录：http://172.36.86.41/ [了解详情](http://172.36.86.41)，请根据实际情况输入对应的IP地址。
