1.基础环境准备

[root@Services ~]# getenforce

Enforcing [root@Services ~]# setenforce 0

[root@Services ~]# systemctl stop firewalld.service --now

[root@Services ~]# ls -l vehicle.zip

-rw-r--r--. 1 root root 4497919 6月  17 15:08 vehicle.zip

2.MySQL准备

[root@Services ~]# getenforce

Enforcing [root@Services ~]# setenforce 0

[root@Services ~]# systemctl stop firewalld.service --now

[root@Services ~]# ls -l vehicle.zip

-rw-r--r--. 1 root root 4497919 6月  17 15:08 vehicle.zip

# 导入项目数据

[root@Services ~]# ls vehicle_backend/sql/vehicle.sql

vehicle_backend/sql/vehicle.sql

#安装MySQL服务

[root@Services ~]# yum -y install mysql.x86_64 mysql-server.x86_64 #启动MySQL服务

[root@Services ~]# systemctl enable mysqld

[root@Services ~]# systemctl start mysqld #配置MySQL用户密码

[root@Services ~]# mysql

mysql> ALTER USER USER() IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.00 sec) mysql> EXIT Bye [root@Services ~]# #测试MySQL连接访问

[root@Services ~]# mysql -hlocalhost -uroot -p'123456' -e "SELECT USER();"

mysql: [Warning] Using a password on the command line interface can be insecure.

+----------------+

| USER()         |

+----------------+

| root@localhost |

+----------------+

[root@Services ~]# mysql -hlocalhost -uroot -p'123456'

mysql> CREATE USER 'prouser'@'localhost' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON *.* TO 'prouser'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> EXIT; [root@Services ~]# mysql -hlocalhost -uprouser -p'123456' < vehicle_backend/sql/vehicle.sql

3.代码编译

后端代码编译

[root@Services ~]# mysql -hlocalhost -uprouser -p'123456'

mysql> SHOW DATABASES;

+--------------------+

| Database           |

+--------------------+

| information_schema | | mysql             | | performance_schema | | sys               | | vehicle_management |

+--------------------+

5 rows in set (0.00 sec) mysql> SHOW TABLES FROM vehicle_management;

+------------------------------+

| Tables_in_vehicle_management |

+------------------------------+

| vehicle_approval_rela       | | vehicle_base_info           | | vehicle_charging_contract   | | vehicle_dict                 | | vehicle_dict_item           | | vehicle_fence_relation       | | vehicle_geo_fence           | | vehicle_inspection           | | vehicle_insurance           | | vehicle_maintenance         | | vehicle_order               | | vehicle_registration         | | vehicle_request_audit       | | vehicle_user                 | | vehicle_warning_record       |

+------------------------------+

15 rows in set (0.00 sec) mysql> exit

Bye [root@Services ~]# # 调整后端配置

[root@Services ~]# cd vehicle_backend/

[root@Services vehicle_backend]# ls

pom.xml sql src vehicle.iml [root@Services vehicle_backend]# vim pom.xml

[root@Services vehicle_backend]# sed -rn '41,47p' pom.xml

      mysql           mysql-connector-java           8.0.26#设置MySQL驱动版本为8.0.26

runtime# cd src/main/resources/

[root@192 resources]# ls

application-vm.yml application.yml mapper sql [root@Services resources]# vim application-vm.yml

server: port: 8080

servlet:   session:     timeout: 86400

spring: servlet:   multipart:     max-file-size: 10MB     max-request-size: 10MB datasource:    # 使用druid数据源

  type: com.alibaba.druid.pool.DruidDataSource   url: jdbc:mysql://localhost:3306/vehicle_management? characterEncoding=utf8&serverTimezone=UTC   driver-class-name: com.mysql.cj.jdbc.Driver #调整驱动名称

  username: prouser   password: 123456

mybatis: mapper-locations: classpath*:mapper/*Mapper.xml

# configuration: #   log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

pagehelper: helper-dialect: mysql  #reasonable: true

support-methods-arguments: true

params: count=countSql upload: project: /manage_backend linux-dir-url: /images/vehicle linux-img-prefix: http://images.project.tedu.cn/vehicle/ [root@Services resources]# vim application.yml #创建主配置文件

[root@Services resources]# cat application.yml

spring: profiles:   active: vm [root@Services ~]# # 编译代码

[root@Services ~]# cd vehicle_backend/

[root@Services vehicle_backend]# ls

pom.xml sql src vehicle.iml [root@Services vehicle_backend]# yum -y install maven.noarch # 配置阿里云中央仓库

[root@Services ~]# vim /etc/maven/settings.xml

[root@Services ~]# sed -rn '159,165p' /etc/maven/settings.xml

4.项目部署

车辆项目后端部署

nexus-aliyun         *         Nexus aliyun         http://maven.aliyun.com/nexus/content/groups/public#本行存在,无需复制

[root@Services ~]# mvn -v

[root@Services vehicle_backend]# mvn clean package -Dmaven.test.skip=true

... [INFO] Replacing main artifact with repackaged archive [INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------

[INFO] Total time:  01:24 min [INFO] Finished at: 2024-04-11T15:41:34+08:00 [INFO] ------------------------------------------------------------------------

[root@Services vehicle_backend]# ls target/vehicle-0.0.1-SNAPSHOT.jar

target/vehicle-0.0.1-SNAPSHOT.jar [root@Services vehicle_backend]# cd # 创建项目目录

[root@Services ~]# mkdir -p /usr/local/project/vehicle/

[root@Services ~]# cp vehicle_backend/target/vehicle-0.0.1-SNAPSHOT.jar /usr/local/project/vehicle/ # 安装Java环境

[root@Services ~]# yum -y install java-1.8.0-openjdk-devel

[root@Services ~]# java -version

openjdk version "1.8.0_332"

OpenJDK Runtime Environment (build 1.8.0_332-b09) OpenJDK 64-Bit Server VM (build 25.332-b09, mixed mode) [root@Services ~]# # 编写服务管理脚本

[root@Services ~]# vim /usr/local/project/vehicle/run.sh

[root@Services ~]# cat /usr/local/project/vehicle/run.sh

#!/bin/bash

start_project(){ nohup java -Dfile.encoding=utf-8 \

-jar /usr/local/project/vehicle/vehicle-0.0.1-SNAPSHOT.jar \

-Xmx256M \

-Xms128M \

-XX:MaxMetaspaceSize=256M \

-XX:MetaspaceSize=128M \

--server.port=8080 \

--spring.profiles.active=vm >/usr/local/project/vehicle/vehicle.log 2>&1 & } stop_project(){   jps | grep "vehicle-0.0.1-SNAPSHOT.jar" | awk '{print $1}' | xargs kill

} case $1 in

start)   start_project;;

stop)   stop_project;; *)    echo "Usage: $0 {start|stop}"

esac

[root@Services ~]# chmod +x /usr/local/project/vehicle/run.sh

[root@Services ~]# # 编写service脚本

[root@Services ~]# vim /usr/lib/systemd/system/vehicle.service

[root@Services ~]# cat /usr/lib/systemd/system/vehicle.service

[Unit]

Description=VehicleProject Jar

After=sshd.service [Service]

ExecStart=/usr/local/project/vehicle/run.sh start

ExecStop=/usr/local/project/vehicle/run.sh stop

Type=forking [Install]

WantedBy=multi-user.target [root@Services ~]# systemctl daemon-reload # 启动服务

[root@Services ~]# systemctl enable vehicle.service --now

Created symlink /etc/systemd/system/multi-user.target.wants/vehicle.service → /usr/lib/systemd/system/vehicle.service.

[root@Services ~]# ss -anptul | grep java

tcp   LISTEN 0      100               *:8080           *:*   users: (("java",pid=11096,fd=15)) [root@Services ~]# # 测试接口(需登录认证123456/123456)

5.车辆项目前端部署

# 上传前端资源

[root@Services ~]# cp -r vehicle_frontend/dist /usr/local/project/vehicle/

[root@Services ~]# cd /usr/local/project/vehicle/

[root@Vehicle vehicle]# ls dist

css favicon.ico img index.html js

# 部署大屏幕

[root@Services ~]# cp -r vehicle_homepage /usr/local/project/vehicle/homepage

[root@Services ~]# ls /usr/local/project/vehicle/homepage/

data files homepage.html images index.html plugins resources start_c_1.html  start.html start_with_pages.html [root@Services ~]# # 安装nginx

[root@Services ~]# yum -y install nginx

[root@Services ~]# vim /etc/nginx/nginx.conf

访问测试

[root@Services ~]# sed -rn '38,40p' /etc/nginx/nginx.conf

  server {        #listen       80 default_server;

                    #listen       [::]:80 default_server;

[root@Services ~]# # 配置nginx发布资源

[root@Services ~]# vim /etc/nginx/conf.d/vehicle.conf

[root@Services ~]# cat /etc/nginx/conf.d/vehicle.conf

server {  

    listen 80;

    server_name __;  

location / {      

    root "/usr/local/project/vehicle/dist/";      

    index index.html index.htm;      

    try_files $uri $uri/ /index.html;

  }

  location /dashboard/display/ {      

    alias "/usr/local/project/vehicle/homepage/";      

    index homepage.html index.html index.htm;      

    try_files $uri $uri/ /index.html;

  }  

location /api/ {

      proxy_pass http://localhost:8080/;

  }

}

[root@Services ~]# # 启动服务

[root@Services ~]# systemctl enable nginx.service --now

[root@Services ~]# ss -anptul | grep nginx

tcp   LISTEN 0      128          0.0.0.0:80        0.0.0.0:*   users: (("nginx",pid=13668,fd=6),("nginx",pid=13667,fd=6),("nginx",pid=13666,fd=6))