• 前后端分离项目服务器部署


    前言

    本文介绍了前后端分离项目在服务器上的部署流程,包括环境准备、项目部署、配置和测试等步骤。

    准备工作

    https://www.xshell.com/zh/
    在这里插入图片描述
    准备好下面这些软件,上传到tmp中
    在这里插入图片描述

    安装jdk1.8

    tar -zxvf /tmp/jdk-8u371-linux-x64.tar.gz -C /usr/local/
    mv /usr/local/jdk1.8.0_371 /usr/local/java
       
    vi /etc/profile
    
    # 按shift + G 快速到达文件末尾   再按下键盘的a键 进入 insert 模式
    
    export JAVA_HOME=/usr/local/java
    export PATH=$JAVA_HOME/bin:$PATH
    
    # 按下 esc 退出insert模式  再输入 :wq
    
    source /etc/profile
    
    # 验证
    java -version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述

    安装nginx

    安装库

    yum install gcc-c++ -y
    yum install -y pcre pcre-devel -y
    yum install -y zlib zlib-devel -y
    yum install -y openssl openssl-devel -y
    
    • 1
    • 2
    • 3
    • 4

    解压、编译nginx并安装

    mkdir /usr/local/nginx
    tar -zxvf /tmp/nginx-1.24.0.tar.gz -C /usr/local/nginx
    
    cd /usr/local/nginx/nginx-1.24.0
    # 编译安装
    ./configure --with-http_stub_status_module --with-http_ssl_module
    make && make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    nginx 命令

    #创建软连接,让系统识别Nginx命令
    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
     
    #检查文件是否正确
    nginx -t
    
    # 启动
    nginx    
    
    ps -ef | grep nginx  # 查看
    ./nginx -s stop      # 停止
    ./nginx -s reload    # 重启
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    测试nginx

    在这里插入图片描述

    安装mysql

    卸载mariadb

    rpm -qa | grep mariadb
    yum remove -y mariadb-connector-c-3.1.11-2.oc8.1.x86_64
    yum remove -y mariadb-connector-c-config-3.1.11-2.oc8.1.noarch
    
    • 1
    • 2
    • 3

    用root用户登录系统,增加mysql用户和组

    # 添加用户组
    groupadd mysql
    useradd -r -g mysql mysql
    chown -R mysql.mysql /usr/local/mysql
    chown -R mysql.mysql /data/mysql
    
    • 1
    • 2
    • 3
    • 4
    • 5

    准备数据目录

    mkdir -p /app/data
    chown mysql.mysql /app/data/
    chmod 750 /app/data
    
    • 1
    • 2
    • 3

    初始化MySQL

        
    cd /usr/local/mysql    
    /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/app/data --initialize
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    将mysql加入到服务中

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    
    • 1

    编辑配置文件,保存退出

    [mysqld]
    datadir=/app/data
    basedir=/usr/local/mysql
    socket=/app/data/mysql.sock
    user=mysql
    port=3306
    character-set-server=utf8
    # 取消密码验证
    # skip-grant-tables
    # # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    [mysqld_safe]
    log-error=/app/data/mysqld.log
    pid-file=/app/data/mysqld/mysqld.pid
    [client]
    socket=/app/data/mysql.sock
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    启动mysql

    bin/mysqld_safe --user=mysql &
    
    • 1

    配置环境变量

     vim /etc/profile
    #添加下面一行
    export PATH=$PATH:/usr/local/mysql/bin
     source /etc/profile
    
    • 1
    • 2
    • 3
    • 4

    设置开机启动

    [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
    [root@localhost mysql]# chkconfig --add mysql.server
    
    • 1
    • 2

    测试登录成功

    在这里插入图片描述

    修改初始密码

    SET PASSWORD = PASSWORD('123456'); 
    
    use mysql;
    update user set host ='%' where user ='root' and host ='localhost';
    flush privileges;
    exit;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Vue项目部署

    设置vue项目结构中的文件

    在这里插入图片描述

    打包vue项目

    在控制台中输入打包命令

    npm run build
    
    • 1

    在这里插入图片描述

    上传dist包到服务器项目目录

    在这里插入图片描述

    修改nginx配置文件

    vi /usr/local/nginx/conf/nginx.conf
    
    • 1

    配置文件修改内容

    server {
        listen       80;
        server_name  localhost;
        
        location / {
            root   /home/server/honey2024/vue/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    执行命令重启

    cd /usr/local/nginx/sbin    
    ./nginx -s reload
    
    • 1
    • 2

    Java部署

    idea打包

    在这里插入图片描述

    上传到服务器

    在这里插入图片描述

    编写脚本

    start.sh

    NAME=springboot-0.0.1-SNAPSHOT.jar
    nohup java -jar $NAME > server.log 2>&1 &
    echo 'start success'
    
    • 1
    • 2
    • 3

    stop.sh

    PORT=9090
    pid=`netstat -tnlp | grep $PORT | grep -v grep | awk '{print $7}' | awk -F/ '{print $1}'`
    if [ ${pid} ]; then
        kill -9 $pid
        echo "kill $PORT"
    else
        echo 'stop sucess!'
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    导入数据库

    新建数据库,比如 manager,导入对应的sql脚本
    在这里插入图片描述
    服务器上可以外置application.yml 覆盖配置
    在这里插入图片描述
    赋予权限

    在这里插入图片描述

    测试

    启动后端:./start
    查看日志: tail -f server.log
    后端启动成功
    在这里插入图片描述
    最后,不要忘记打开防火墙端口 9090
    在这里插入图片描述

    打开 http://服务器ip 访问项目,输入账号密码,如果正常登录即表示部署成功

    其他

    如果你项目本地有图片文档,加载不出来
    解决:拷贝本地的 files文件夹 到服务器上 即可。
    在这里插入图片描述

  • 相关阅读:
    DataBinding 进阶用法
    打开时空隧道,重演云栖72小时云世界
    leetcode:2347. 最好的扑克手牌(python3解法)
    【自然语言处理-二-attention注意力 是什么】
    el-date-picker 组件 监听输入的内容 并按照时间格式 格式化
    2.1 Redis中SDS的定义
    【杂记】全栈开发中碰到的一些问题及解决方法
    MySQL触发器基本结构
    【深度学习】详解 BEiT
    Java题目集-Chapter 10 Object-Oriented Thinking
  • 原文地址:https://blog.csdn.net/qq_45726327/article/details/136432638