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

文章目录

    • 项目介绍
    • 流程
      • 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} ]; thenkill -9 $pidecho "kill $PORT"
elseecho '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/nginxcd /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/mysqlcd /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链接服务器上面的数据库。

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java项目:63 ssm网上花店设计+vue

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统具备友好性且功能完善。管理员登录进入后台之后&#xff0c;主要完成花材选择管理&#xff0c;用户管理&#xff0c;鲜花管理&#xff0c;鲜花出入…

Rethinking ImageNet Pre-training

PDF地址&#xff1a; 后续更新 代码地址就不提供了&#xff0c;因为这个工作有点老了哈哈&#xff0c;但是凯明大神的想法真的很超前&#xff0c;之后会优先做凯明大神的论文系列&#xff0c;在当年还有很多小伙伴是评论说这个论文其实是一篇广告或者标准的实验报告&#xff0c…

AI基础知识(3)--神经网络,支持向量机,贝叶斯分类器

1.什么是误差逆传播算法&#xff08;error BackPropagation&#xff0c;简称BP&#xff09;&#xff1f; 是一种神经网络学习算法。BP是一个迭代学习算法&#xff0c;在迭代的每一轮使用广义的感知机学习规则对参数进行更新估计。基于梯度下降&#xff08;gradient descent&am…

利用自定义 URI Scheme 在 Android 应用中实现安全加密解密功能

在现代移动应用开发中&#xff0c;安全性和用户体验是至关重要的考虑因素。在 Android 平台上&#xff0c;开发人员可以利用自定义 URI Scheme 和 JavaScript 加密解密技术来实现更安全的数据传输和处理。本文将介绍如何在 Android 应用中注册自定义 URI Scheme&#xff0c;并结…

YOLOv2学习

YOLOv2学习 Anchor boxes 和 bounding boxes 的区别锚框&#xff08;Anchor Boxes&#xff09;边界框&#xff08;Bounding Boxes&#xff09;锚框与边界框的区别 摘要引言数据集组合方法&#xff08;Dataset Combination Method&#xff09;联合训练算法&#xff08;Joint Tra…

智能化工厂大屏监控

通过采集和整合工厂各个环节的数据&#xff0c;包括设备状态、生产进度、质量指标、能源消耗等&#xff0c;并将这些数据以图表、动画、报表等形式展示在大屏上。 智能化工厂大屏监控可以提供以下优势&#xff1a; 实时监控&#xff1a;通过大屏幕展示工厂各项数据&#xff0c…

每日OJ题_牛客HJ12 字符串反转(IO型OJ)

目录 牛客HJ12 字符串反转 解析代码 牛客HJ12 字符串反转 字符串反转_牛客题霸_牛客网 解析代码 #include <iostream> using namespace std; int main() {string str "";cin >> str;int left 0, right str.size() - 1;while (left < right){ch…

将所有文件中的某一段字符替换为另一段字符的方法

问题描述&#xff1a; 本来我需要打开一个文件一个文件&#xff0c;将里面的MMEAN2000ym.nc,改为MMEAN2000-2009ym.nc. 一共有9个文件&#xff0c;增么样能够更加高效呢&#xff0c;可不可以不打开一个文件就能完成这项工作&#xff1f; 解决方法&#xff1a; 使用sed 命令就…

任务栏通知区域

在 Windows 操作系统中&#xff0c;任务栏底部右侧的区域被称为 "System Tray" 或者 "Notification Area" Notification Area - Win32 apps | Microsoft Learn The notification area provides notifications and status. Well-designed programs use the …

【闲聊】-后端框架发展史

框架&#xff0c;是为了解决系统复杂性&#xff0c;提升开发效率而产生的工具&#xff0c;主要服务于研发人员。 当然&#xff0c;框架还有更深层的作用&#xff0c;框架的沉淀是一种高级的抽象&#xff0c;会将人类的业务逐步抽象为统一标准又灵活可变的结构&#xff0c;为各行…

猫头虎分享已解决Bug || TypeError: Cannot interpret ‘float‘ value as integer.

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

3.18 day6 C++

以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园里有一位进解员&#xff0c;他会为每种动 物表…