部署项目
### 项目部署
#### 运行环境
建议在Linux环境中部署此应用,此文档以CentOS7.8 64位为例。
1、安装OpenJDK11
```shell
yum search jdk
yum install java-11-openjdk.x86_64
yum install java-11-openjdk-devel.x86_64 // 开发环境,可选
```
*注意:已自动设置好环境变量,不需要手动设置*
2、安装MySQL8.X
1)从MySQL官网下载`mysql80-community-release-el7-3.noarch.rpm`文件,下载地址:[https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm](https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm)
2)把下载的`mysql80-community-release-el7-3.noarch.rpm`文件上传到Linux服务器指定目录中,如`/data/env`
3)进入`/data/env`目录中,执行`rpm -ivh mysql80-community-release-el7-3.noarch.rpm`
4)开始安装并启动MySQL,获取ROOT用户初始密码
```shell
yum install mysql-community-server
systemctl start mysqld.service // 启动mysql服务
systemctl status mysqld.service // 检测mysql启动状态
grep 'temporary password' /var/log/mysqld.log //获取mysql临时密码
```
5)使用初始密码登录MySQL更新ROOT用户密码
```sql
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
```
6)如果需要其他计算机也能访问到您的MySQL(方便自己的电脑连接MySQL服务器),登录MySQL后,执行以下脚本:
```sql
use mysql;
UPDATE user SET Host='%' WHERE User='root';
flush privileges;
```
7)设置自动启动MySQL服务
```shell
systemctl enable mysqld.service
```
3、安装Redis5.0.3(也可安装新版本Redis)
1)从Redis官网下载Redis,下载地址:[https://redis.io/download](https://redis.io/download)
2)把下载的文件上传到Linux服务器的`/data/env`目录中
3)进入`/data/env`目录
4)执行`tar -xzvf redis-5.0.3.tar.gz`命令
5)执行以下命令
```shell
cd redis-5.0.3
make // 编译Redis
```
6)设置环境变量
```shell
vim /etc/profile
export PATH=$PATH:/data/redis/src
source /etc/profile
```
7)`vim redis.conf`,修改其中的`daemonize`为`yes`
8)设置自动启动Redis服务
```shell
vim /etc/systemd/system/redis-server.service
```
文件内容:
```shell
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/data/env/redis-5.0.3/src/redis-server
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
```
```shell
systemctl start redis-server.service // 启动Redis
systemctl enable redis-server.service // 允许自动启动
```
4、安装Nginx
```shell
yum install nginx
```
启动命令:`/usr/sbin/nginx`
默认的html目录:`/usr/share/nginx/html`
配置目录:`/etc/nginx`
其他的conf配置目录:`/etc/nginx/conf.d`
修改配置文件后重新加载配置命令:`nginx -s reload`
*注意:如果修改配置后还是显示nginx默认的首页,则需要进入`/usr/share/nginx/html`,把此目录删除或重命名。*
#### 项目打包并上传到服务器
1、创建服务器端目录
```
/data
/data/zywork-app-pro
/data/zywork-app-data // 服务器端存储上传文件的目录
```
2、打包zywork-app-pro
1)修改`resources/application.yml`文件
```yml
spring:
profiles:
active: prod
```
2)在IDEA的Maven工具窗口视图,展开Lifecycle后双击package进行打包
3)打包完成后,在target目录中会生成`zywork-app-pro-1.0.0.jar`文件
4)把`zywork-app-pro-1.0.0.jar`上传到服务器`/data/zywork-app-pro`目录中
2、打包zywork-app-ui-pro
1)进入zywork-app-ui-pro项目,打开.env.production文件,确保如下下配置是正确的URL(请自行修改为自己的URL):
```javascript
VUE_APP_BASE_API = 'https://zywork.cn/api'
VUE_APP_RES_URL = 'https://zywork.cn/'
```
2)进入zywork-app-ui-pro项目根目录中,按住Shift键的同时点击鼠标右键,在弹出的右键菜单中点击`在此处打开Powershell窗口`。
3)在打开的Powershell窗口中输入以下命令:
```shell
npm run build:prod
```
命令执行成功后,会在zywork-app-ui-pro目录中生成`dist`目录。把整个`dist`目录上传到服务器`/data/zywork-app-pro`目录中。
#### 创建数据库并执行SQL脚本
1、进入zywork-app-pro项目根目录,在documents目录中可以找到`zywork_app_master.sql`数据库脚本文件。该脚本文件包含了系统正常运行的所有数据库脚本。
2、登录服务器MySQL,创建数据库:`zywork_app_master`,数据库字符集:`utf8mb4`,排序规则:`utf8mb4_general_ci`。在创建的数据库中运行`zywork_app_master.sql`脚本以初始化数据库表和表数据。
#### Nginx配置
1、SSL证书
申请SSL证书,下载并把Nginx版本的SSL证书上传到`/etc/nginx/cert`目录中(请自行创建cert目录)。
2、nginx.conf
```shell
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 300;
types_hash_max_size 5120;
gzip on;
include /etc/nginx/conf.d/*.conf;
server {
listen 443 ssl;
server_name zywork.cn;
#ssl on;
ssl_certificate cert/1_zywork.cn_bundle.crt;
ssl_certificate_key cert/2_zywork.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 50m;
location / {
try_files $uri $uri/ /backend/index.html;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ^~ /api/ {
proxy_pass http://zywork.cn:8088/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ^~ /backend/ {
proxy_pass http://zywork.cn:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ^~ /upload/ {
root /data/zywork-app-data/;
}
}
}
```
/etc/nginx/conf.d/zywork-app-ui-pro.conf
```shell
server {
listen 8080;
server_name zywork.cn;
root /data/zywork-app-pro/dist/;
index index.html index.htm;
location /backend/ {
try_files $uri $uri/ @router;
index index.html;
}
location @router {
rewrite ^.*$ index.html last;
}
}
```
#### 开始运行项目
1、安装cronolog命令
```shell
yum install cronolog
```
2、进入`/data/zywork-app-pro`目录,创建`start-app.sh`脚本文件(作用是启动jar项目,并把SpringBoot的日志文件按天存储),内容如下:
```shell
nohup java -jar zywork-app-pro-1.0.0.jar | /usr/sbin/cronolog ./console-%Y-%m-%d.out &
```
3、给`start-app.sh`添加可执行权限
```shell
chmod +777 start-app.sh
```
4、在`/data/zywork-app-pro`目录中输入如下命令启动`zywork-app-pro-1.0.0.jar`
```shell
./start-app.sh
```
5、进入Nginx中配置的URL地址以访问后台界面及后台服务,本例中为:[https://zywork.cn/backend](https://zywork.cn/backend),用户名为18888888888,密码为123456Abc
#### 小程序部署
小程序的部署不在此赘述,有问题请入QQ群:320125035