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

文章目录

  • 前言
  • 准备工作
  • 安装jdk1.8
  • 安装nginx
    • 安装库
    • 解压、编译nginx并安装
    • nginx 命令
    • 测试nginx
  • 安装mysql
    • 卸载mariadb
    • 用root用户登录系统,增加mysql用户和组
    • 准备数据目录
    • 初始化MySQL
    • 将mysql加入到服务中
    • 编辑配置文件,保存退出
    • 启动mysql
    • 配置环境变量
    • 设置开机启动
    • 测试登录成功
    • 修改初始密码
  • Vue项目部署
    • 设置vue项目结构中的文件
    • 打包vue项目
    • 上传dist包到服务器项目目录
    • 修改nginx配置文件
    • 执行命令重启
  • Java部署
    • idea打包
    • 上传到服务器
    • 编写脚本
  • 导入数据库
  • 测试
  • 其他

前言

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

准备工作

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

在这里插入图片描述

安装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

解压、编译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

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    # 重启

测试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

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

# 添加用户组
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql

准备数据目录

mkdir -p /app/data
chown mysql.mysql /app/data/
chmod 750 /app/data

初始化MySQL

    
cd /usr/local/mysql    
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/app/data --initialize

在这里插入图片描述

将mysql加入到服务中

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

编辑配置文件,保存退出

[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

启动mysql

bin/mysqld_safe --user=mysql &

配置环境变量

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

设置开机启动

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

测试登录成功

在这里插入图片描述

修改初始密码

SET PASSWORD = PASSWORD('123456'); 

use mysql;
update user set host ='%' where user ='root' and host ='localhost';
flush privileges;
exit;

Vue项目部署

设置vue项目结构中的文件

在这里插入图片描述

打包vue项目

在控制台中输入打包命令

npm run build

在这里插入图片描述

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

在这里插入图片描述

修改nginx配置文件

vi /usr/local/nginx/conf/nginx.conf

配置文件修改内容

server {
    listen       80;
    server_name  localhost;
    
    location / {
        root   /home/server/honey2024/vue/dist;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
}

执行命令重启

cd /usr/local/nginx/sbin    
./nginx -s reload

Java部署

idea打包

在这里插入图片描述

上传到服务器

在这里插入图片描述

编写脚本

start.sh

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

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

导入数据库

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

在这里插入图片描述

测试

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

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

其他

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/428304.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

20 个不同的 Python 函数实例

Python 是一种广泛使用的高级编程语言,其函数是 Python 编程中至关重要的概念之一。函数是一段可以重复使用的代码块,可以接收输入参数并返回输出结果。使用函数能够提高代码的可读性、可维护性和重用性。 基础知识 在 Python 中,函数使用关…

C语言初阶—数组

数组是一组相同类型元素的集合。 在C99标准之前,数组的大小必须是常量或常量表达式。 在C99标准之后,数组的大小可以是变量,可以支持变长数组,但变长数组不能初始化。 不完全初始化,剩余的元素默认初始化为0 。 数组访…

c++_leetcode_寻找峰值

目录 一、寻找峰值的示例 二、官方实现代码及解释 1、官方测试结果: 2、代码解释: 3、解题思路: 三、我的暴力解决 1、测试一: 2、测试二: 3、最终“暴力求解”代码: 4、官网提交测试通过&#xf…

终极排序(快排,归并,库函数)

一、快速排序 1、确定分界点:q [ l ] , q [ ( l r ) / 2 ] , q [ r ] ,或者其它区间之中的随机数。(左 l 右 r ) 2、调整区间:(较难理解的部分) (1)、暴力做法 …

基于Siamese网络的zero-shot意图分类

原文地址:Zero-Shot Intent Classification with Siamese Networks 通过零样本意图分类有效定位域外意图 2021 年 9 月 24 日 意图识别是面向目标对话系统的一项重要任务。意图识别(有时也称为意图检测)是使用标签对每个用户话语进行分类的任务,该标签…

云手机的境外舆情监控应用——助力品牌公关

在当今数字化时代,社交媒体已成为品牌传播和互动的主要平台。随之而来的是海量的信息涌入,品牌需要及时了解并应对海外社交媒体上的舆情变化。本文将介绍如何通过云手机进行境外舆情监控,更好地帮助企业公关及时作出决策。 1. 境外舆情监控与…

图像实现曲面屏效果

图像实现曲面屏效果 双线性插值 双线性插值是一种常用的图像插值方法,用于在图像中两个相邻像素之间进行插值,以获取介于它们之间某个位置的像素值。在透视变换等情况下,由于原始图像的像素点与目标图像的像素点位置不完全重合,…

HTML入门:推荐1款免费好用的web开发工具

前言 你好,我是云桃桃。 在过去的 10 年里,我一直专注于 web 前端开发领域,积累了丰富的经验和知识。 所以,接下来,我会把自己所学所做给体系化输出,我将持续与你分享关于 HTML、CSS、JavaScript&#x…

yolov7添加spd-conv注意力机制

一、spd-conv是什么? SPD-Conv(Symmetric Positive Definite Convolution)是一种新颖的卷积操作,它主要应用于处理对称正定矩阵(SPD)数据。在传统的卷积神经网络(CNN)中,…

天拓四方工业物联网网关在质量管理方面的应用

项目背景 某印刷企业为了提高产品质量和客户满意度,决定建立印刷质量追溯系统,以便对生产过程中的关键参数和产品质量进行追溯和管理。 应用方案 该企业选择了一款具备数据采集和传输功能的工业物联网网关,并与印刷机、切纸机等核心设备进…

【脑科学相关合集】有关脑影像数据相关介绍的笔记及有关脑网络的笔记合集

【脑科学相关合集】有关脑影像数据相关介绍的笔记及有关脑网络的笔记合集 前言脑模板方面相关笔记清单 基于脑网络的方法方面数据基本方面 前言 这里,我将展开有关我自己关于脑影像数据相关介绍的笔记及有关脑网络的笔记合集。其中,脑网络的相关论文主要…

MySQL篇—执行计划之覆盖索引Using index和条件过滤Using where介绍(第三篇,总共三篇)

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…

vscode 本地/远程添加python解释器

文章目录 1. 背景2. 增加python解释器 1. 背景 我们在使用 vscode 去远程调试代码时,如果环境存在多个 Python 版本(如用 conda 管理),没有选择正确的 Python 解释器会导致少包、库不适配等各种问题 2. 增加python解释器 windo…

kubernetes(k8s)集群超级详细超全安装部署手册

一、卸载k8s 针对机器已安装过k8s的情况,如未安装过,请忽略。 # 首先清理运行到k8s群集中的pod,使用 kubectl delete node --all# 使用脚本停止所有k8s服务 for service in kube-apiserver kube-controller-manager kubectl kubelet etcd k…

Linux的进程的概念

目录 1.冯诺依曼体系结构(硬件) 2.操作系统(软件) 2.1概念 2.2设计os(操作系统)的目的 2.3如何理解管理 2.4系统调用和库函数概念 3.进程 3.1基本概念 3.2描述进程-PCB和组织进程 3.3ps axj指令 3.4查看进程 3.5通过系统调用获取进程表示符(P…

价格腰斩,腾讯云2024优惠活动云服务器62元一年,多配置报价

腾讯云服务器多少钱一年?62元一年起,2核2G3M配置,腾讯云2核4G5M轻量应用服务器218元一年、756元3年,4核16G12M服务器32元1个月、312元一年,8核32G22M服务器115元1个月、345元3个月,腾讯云服务器网txyfwq.co…

Mac M系列芯片如何重新安装系统

使用可引导安装器重新安装(可用于安装非最新的 Mac OS,系统降级,需要清除所有数据,过程确保连接上网络,虽然这种方式不会下载 Mac OS,但是需要下载固件等信息) 插入制作好的可引导安装器&#x…

如何在Linux使用Docker部署Redis并结合内网穿透实现公网远程连接本地数据库

文章目录 前言1. 安装Docker步骤2. 使用docker拉取redis镜像3. 启动redis容器4. 本地连接测试4.1 安装redis图形化界面工具4.2 使用RDM连接测试 5. 公网远程访问本地redis5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 正文开始前给大家推荐个网站…

pandas.DataFrame新增列、dropna()方法-丢弃含空值的行、列;inf的处理技巧

在Dataframe中新添加一列 直接指明列名,然后赋值就可 import pandas as pddata pd.DataFrame(columns[a,b], data[[1,2],[3,4]]) data >>> dataa b 0 1 2 1 3 4 添加一列’c‘,赋值为空白值。打印出来 data[c] data >>>…

汽车碰撞与刮伤的实用维修技术,汽车的车身修复与涂装修补教学

一、教程描述 本套汽车维修技术教程,大小7.44G,共有60个文件。 二、教程目录 01-汽车车身修复教程01-安全规则(共3课时) 02-汽车车身修复教程02-汽车结构(共3课时) 03-汽车车身修复教程03-汽车修复所使…