前后端分离项目部署服务器教程--实践成功

文章目录

    • 项目介绍
    • 流程
      • 1租界云服务
      • 2通过远程软件连接服务器
      • 3部署前后端代码
      • 停止功能文件
    • 环境配置
      • 1.安装jdk
      • 2.安装Nginx
      • 3.安装mysql数据库

花了将近一天部署前后端的项目,写一个日志记录一下,话说孰能生巧。明天把服务器恢复初始在部署一下。

项目介绍

我部署的是前后端分离的项目,前端是vue写的,后端是基于springboot工程。
这是我的项目架构。
没有采用Redis来缓存。
在这里插入图片描述

流程

1租界云服务

首先需要租借一个云服务器。阿里云、腾讯云都是可以的,学生还有一定的优惠价格。

2通过远程软件连接服务器

通过X-shell 和 Xftp 远程操作服务器,X-shell是和服务器进行连接控制的,Xftp是文件上传,可以用可视化界面来上传文件。

X-shell和Xftp可以申请学生认证免费使用。

3部署前后端代码

首先创建x-shell连接。

前端工程通过bulid命令打包,后端springboot通过maven命令打包。
在这里插入图片描述
后端工程
在这里插入图片描述
在这里插入图片描述

在xshell里面:
创建文件夹:mkdir -p /home/server/honey2024
上传 jar 包到服务器 /home/server/honey2024/java 目录

设置 application.yml 覆盖,项目启动后会使用这个yml里面的配置。
在这里插入图片描述

添加 启动和停止脚本

cd /home/server/honey2024/java
vi start.sh
输入下面的命令,先点击a进入插入模式,在粘贴过去,按下esc和:,输入wq!保存文件。也可以通过可视化直接操作。

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

停止功能文件

vi 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

再讲所有文件都加上权限

chmod +x *
这是一个 Unix/Linux 系统中的命令,用于给当前目录下的所有文件添加可执行权限。通常情况下,chmod 是用来改变文件或目录的权限设置的命令,而 +x 则是表示添加可执行权限。 * 通配符表示所有文件。因此,这个命令的作用是将当前目录下的所有文件设置为可执行的。

部署vue文件
将打包后的dist文件上传到vue文件夹,这个时候项目以及部署完毕了,下面需要哦配置项目所需要的环境

在这里插入图片描述

环境配置

项目用的是jdk1.8,mysql5.7,还有nginx。
安装包链接:
链接:https://pan.baidu.com/s/1OuoOwQQmZ8xxq91LQuTZ8w?pwd=trdp
提取码:trdp
–来自百度网盘超级会员V3的分享

1.安装jdk

tar -zxvf /tmp/jdk-8u371-linux-x64.tar.gz -C /usr/local/ 
#解压文件 到local文件夹
mv /usr/local/jdk1.8.0_371 /usr/local/java
# 修改文件名
vi /etc/profile
#配置环境
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
#这两行设置了 JAVA_HOME 环境变量为 JDK 的安装路径,以及将 JDK 的 bin 目录添加到#系统的 PATH 环境变量中,使得系统可以找到 Java 可执行文件。


source /etc/profile
source /etc/profile
#这个命令用于使更改后的环境变量立即生效,而不需要重新启动系统。
# 验证
java -version

在这里插入图片描述

2.安装Nginx

安装库文件

#安装gcc
yum install gcc-c++

#安装PCRE pcre-devel
yum install -y pcre pcre-devel

#安装zlib
yum install -y zlib zlib-devel

#安装Open SSL
yum install -y openssl openssl-devel

解压编译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的命令

cd /usr/local/nginx/sbin
./nginx     # 启动

ps -ef | grep nginx  # 查看
./nginx -s stop      # 停止
./nginx -s reload    # 重启

3.安装mysql数据库

linux会自带一个数据库,需要将原来的数据库删除。

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

下载 mysql 并 上传到 /tmp 目录
安装 mysql 命令:

mkdir /data/mysql
tar -zxvf /tmp/mysql-5.7.42-el7-x86_64.tar.gz -C /usr/local
mv /usr/local/mysql-5.7.42-el7-x86_64 /usr/local/mysql

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


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

#  将mysql加入到服务中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

# mysql快捷方式
ln -s  /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libncurses.so.5

在这里插入图片描述

记住临时密码:osGMitUO<56. 每个人的密码不一样

配置 mysql 配置文件 my.cnf
vi /etc/my.cnf

mysql的一些配置文件

[mysqld]
datadir=/data/mysql
basedir=/usr/local/mysql
socket=/tmp/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=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

启动 mysql: service mysql start
在这里插入图片描述

开机启动: chkconfig mysql on

登录 mysql:mysql -uroot -p
输入临时密码进入 mysql

修改密码并设计权限

SET PASSWORD = PASSWORD('123456');

use mysql;
update user set host ='%'where user ='root' and host ='localhost';
flush privileges;
exit;
这些命令是在 MySQL 数据库中重置 root 用户的密码并允许远程访问的一系列操作。让我逐步解释:

SET PASSWORD = PASSWORD('123456');: 这个命令用于将 root 用户的密码设置为 123456。SET PASSWORD 是 MySQL 中用于设置用户密码的命令。

use mysql;: 这个命令用于切换到 mysql 数据库,mysql 是 MySQL 中存储用户权限信息的系统数据库。

update user set host ='%'where user ='root' and host ='localhost';: 这个命令用于更新 user 表中 root 用户的主机信息,将其从 localhost 改为 %,表示允许 root 用户从任何主机访问 MySQL。

flush privileges;: 这个命令用于刷新 MySQL 的权限,使修改立即生效。

exit;: 这个命令用于退出 MySQL 客户端。

用datagrip链接服务器上面的数据库。

还需要设计服务器的防火墙,运行对应的后端请求端口通过。

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

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

相关文章

【Node.js从基础到高级运用】十四、Node.js 错误处理与日志记录

引言 在这篇博客文章中&#xff0c;我们将深入探讨Node.js中的错误处理和日志记录的最佳实践。我们会了解如何在Node.js应用程序中有效地捕获和处理错误&#xff0c;并利用日志库如morgan来记录应用程序的活动和错误信息。 第1部分&#xff1a;Node.js中的错误处理 同步代码中…

【Node.js从基础到高级运用】十三、NodeJS中间件高级应用

在现代web开发中&#xff0c;Node.js因其高效和灵活性而备受青睐。其中&#xff0c;中间件的概念是构建高效Node.js应用的关键。在这篇博客文章中&#xff0c;我们将深入探讨Node.js中间件的高级应用&#xff0c;包括创建自定义中间件、使用第三方中间件等。我们将从基础讲起&a…

CTF题型 Http请求走私总结Burp靶场例题

CTF题型 Http请求走私总结&靶场例题 文章目录 CTF题型 Http请求走私总结&靶场例题HTTP请求走私HTTP请求走私漏洞原理分析为什么用前端服务器漏洞原理界定标准界定长度 重要!!!实验环境前提POST数据包结构必要结构快速判断Http请求走私类型时间延迟CL-TETE-CL 练习例题C…

三 C#插入排序算法

简介 插入排序算法是一种简单、直观的排序算法&#xff0c;其原理是将一个待排序的元素逐个地插入到已经排好序的部分中。 插入排序实现原理 插入排序算法是一种简单、直观的排序算法&#xff0c;其原理是将一个待排序的元素逐个地插入到已经排好序的部分中。 具体实现步骤…

Java类的初始化顺序

请直接看原文: Java类的初始化顺序_java创建顺序-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- 对于静态变量、静态初始化块、变量、初始化块、构造器&#xff0c;它们的…

滴答拍摄影项目|基于Spring Boot框架+ Mysql+Java+ Tomcat的滴答拍摄影项目设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

centos创建并运行一个redis容器 并支持数据持久化

步骤 : 创建redis容器命令 docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes 进入容器 : docker exec -it mr bash 链接redis : redis-cli 查看数据 : keys * 存入一个数据 : set num 666 获取数据 : get num 退出客户端 : exit 再退…

elk收集k8s微服务日志

一、前言 使用filebeat自动发现收集k8s的pod日志&#xff0c;这里分别收集前端的nginx日志&#xff0c;还有后端的服务java日志&#xff0c;所有格式都是用json格式&#xff0c;建议还是需要让开发人员去输出java的日志为json&#xff0c;logstash分割java日志为json格式&#…

java实现word转pdf

引入依赖包 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.2.5.RELEASE</version></dependency><dependency><groupId…

jQuery+CSS3自动轮播焦点图特效源码

jQueryCSS3自动轮播焦点图特效源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面 下载地址 jQueryCSS3自动轮播焦点图特效源码

day03vue学习

day03 一、今日目标 1.生命周期 生命周期介绍生命周期的四个阶段生命周期钩子声明周期案例 2.综合案例-小黑记账清单 列表渲染添加/删除饼图渲染 3.工程化开发入门 工程化开发和脚手架项目运行流程组件化组件注册 4.综合案例-小兔仙首页 拆分模块-局部注册结构样式完善…

LeetCode链表hard 有思路?但写不出来?

给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值…

功能齐全的免费 IDE Visual Studio 2022 社区版

面向学生、开放源代码和单个开发人员的功能齐全的免费 IDE 下载地址 Visual Studio 2022 社区版 - 下载最新的免费版本 Visual Studio 2022 Community Edition – Download Latest Free Version 准备安装 选择需要安装的程序 安装进行中 使用C学习程序设计相关知识并培养编程…

改变input placeholder的样式 (适用于vue uniapp 中的input textarea)

如下控制 <textarea name"" placeholder"请输入您要反馈的问题&#xff0c;以便我们为您解决" placeholder-style"font-weight: 500;font-size: 27rpx;color: #999999;" id"" cols"30" rows"10"></text…

电话机器人语音识别用哪家更好精准度更高。

语音识别系统的选择取决于你的具体需求&#xff0c;包括但不限于识别精度、速度、易用性、价格等因素。以下是一些在语音识别领域表现较好的公司和产品&#xff1a; 科大讯飞&#xff1a;科大讯飞是中国最大的语音识别技术提供商之一&#xff0c;其语音识别技术被广泛应用于各…

诺视科技完成亿元Pre-A2轮融资,加速Micro-LED微显示芯片商业化落地

近日&#xff0c;Micro-LED微显示芯片研发商诺视科技&#xff08;苏州&#xff09;有限公司&#xff08;以下简称“诺视科技”&#xff09;宣布完成亿元Pre-A2轮融资&#xff0c;本轮融资由力合资本领投&#xff0c;老股东盛景嘉成、汕韩基金以及九合创投持续加码&#xff0c;这…

Ubuntu 搭建gitlab服务器,及使用repo管理

一、GitLab安装与配置 GitLab 是一个用于仓库管理系统的开源项目&#xff0c;使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的Web服务。 1、安装Ubuntu系统&#xff08;这个教程很多&#xff0c;就不展开了&#xff09;。 2、安装gitlab社区版本&#xff0c;有需…

后端工程师快速使用vue和Element

文章目录 Vue1 Vue概述2 快速入门3 Vue指令3.1 v-bind和v-model3.2 v-on3.3 v-if和v-show3.4 v-for3.5 案例 4 生命周期 Element快速使用1 Element介绍2 快速入门3 当前页面中嵌套另一个页面案例代码案例截图 Vue 1 Vue概述 通过我们学习的htmlcssjs已经能够开发美观的页面了…

微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下

文章目录 一、数据聚合1.1 聚合种类1.2 DSL实现聚合1.3 RestAPI实现聚合1.4 演示&#xff1a;多条件聚合 二、自动补全2.1 拼音分词器2.2 自定义分词器2.3 DSL自动补全查询2.5 实现酒店搜索框自动补全2.5.1 修改酒店索引库数据结构2.5.2 RestAPI实现自动补全查询2.5.3 实战 三、…

yocto编译测试

源码下载 git clone -b gatesgarth git://git.yoctoproject.org/poky lkmaolkmao-virtual-machine:~/yocto$ git clone -b gatesgarth git://git.yoctoproject.org/poky Cloning into poky... remote: Enumerating objects: 640690, done. remote: Counting objects: 100% (13…