前后端分离项目部署服务器教程--实践成功
创始人
2025-01-18 09:33:35
0

文章目录

    • 项目介绍
    • 流程
      • 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链接服务器上面的数据库。

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

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...