部署项目

### 项目部署 #### 运行环境 建议在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