【Java-SpringBoot+Vue+MySql】前后端分离项目云端部署

news/2024/9/23 10:22:13/

目录

部署环境:

安装MYSQL:

安装Nginx

安装配置JDK 

远程连接数据库

前端打包

后端打包

心得:


 

部署环境:

CentOS7.6

MySQL5.7

JDK1.8

Nginx1.8

下载MySQL

MySQL :: Download MySQL Community Server (Archived Versions)

RPM安装mysql5.7_Code粥的博客-CSDN博客

下载Nginx

nginx: download

下载JDK

【JavaWeb开发-Servlet】将项目部署在云服务器_代码骑士的博客-CSDN博客

我的安装包:

链接:https://pan.baidu.com/s/15r6dNEPEpdmojArniSAWtw 
提取码:yhun 
--来自百度网盘超级会员V3的分享

工具:

 

步骤:

安装MYSQL:

1、创建server文件夹,用于存放部署环境安装包。 

pwd——查看当前目录

/root

cd /usr/——切换目录

ls——显示当前文件下的目录

mkdir server——创建目录server

cd server/——切换目录

2、将环境压缩包拖入server目录

3、卸载Linux自带的数据库mariadb(注意命令改为自己的版本)

# 查找
rpm -qa|grep mariadb
#mariadb-libs-5.5.60-1.el7_5.x86_64
# 卸载

rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps

 解压mysql压缩包到mysql目录

mkdir mysql/

tar xvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar -C mysql

切换到安装目录

cd /usr/server/mysql/

安装依赖

yum -y install libaio
yum -y install libncurses*
yum -y install perl perl-devel

 执行安装

rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm

 启动mysql服务

#启动mysql
systemctl start mysqld.service
#查看生成的临时root密码
cat /var/log/mysqld.log | grep password

ph,>?lotl9Nl

# 登录mysql
mysql -u root -p
Enter password: #输入在日志中生成的临时密码
# 更新root密码 设置为123456
set global validate_password_policy=0;
set global validate_password_length=1;

set password = password('123456');

授予远程连接权限

grant all privileges on *.* to 'root' @'%' identified by '123456';
# 刷新
flush privileges;

退出mysql使用其他指令

#退出mysql

exit

#mysql的启动和关闭 状态查看
systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld

#这里输入下面的指令即可:
#建议设置为开机自启动服务
systemctl enable mysqld
#查看是否已经设置自启动成功
systemctl list-unit-files | grep mysqld 

 关闭防火墙(阿里云使用安全组,默认关闭防火墙)

firewall-cmd --state #查看防火墙状态
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

安装Nginx

 安装包也可以,yum也可以,此处用yum安装更快。

yum install epel-release
yum update
yum -y install nginx

nginx指令

systemctl start nginx #开启nginx服务(下完先启动一下)
systemctl stop nginx #停止nginx服务
systemctl restart nginx #重启nginx服务

安装配置JDK 

进入server目录,解压jdk压缩包(nginx压缩包没用上就可以删了)

cd /usr/server/

解压:

tar -zvxf jdk-8u351-linux-x64.tar.gz

进入jdk1.8目录,

 cd jdk1.8.0_351/

编辑 /etc/profile 文件

vim /etc/profile
# 文件末尾增加
export JAVA_HOME=/usr/server/jdk1.8.0_351
export PATH=${JAVA_HOME}/bin:$PATH 

 执行source命令使配置立即生效

source /etc/profile

 检查版本查看是否安装成功

java -version

 

远程连接数据库

前端打包

之前下载完nginx我们顺手启动了一下,现在在浏览器输入公网ip是可以访问到启动页面的:

 将在本地的ip(localhost)改为对应的云服务器公网ip,终端执行打包指令:npm run build

在服务器终端新建文件夹存储前端打包好的dist文件

 cd /usr/
 mkdir app/

cd app/

将dist文件拖入

前端修改好路径,端口,进行打包。

 本地的代理配置没用了可以注释掉

run build

将打包好的dist文件拖入app目录 

配置nginx文件

方法1:

默认监听80端口

cd /etc/nginx/conf.d/
创建

vim vue.conf

server {
listen 80;
server_name locahost;
location / {
root /usr/app/dist;
index index.html;
}
}

使配置生效

nginx -s reload

 

方法2: 

我在本地运行时前端代理:

意思是:只要我们访问路径中第一个请求是api就自动跳转到 target路径。

当我们把前端部署到服务器用nginx代理时也是同理。

步骤: 

cd /etc/nginx/
vim nginx.conf

vim /etc/nginx/nginx.conf

 

使配置生效

nginx -s reload

再次访问公网ip会看到不一样的风景

vuedemo

后端打包

修改数据库配置,确保云端存在。

localhost可改可不改,因为云端主机就是公网ip。

打开maven包管理器 ,点击package,进行打包

 找到打包好的jar包

将其上传到服务器

启动java程序 

cd /usr/app/

nohup java -jar import-execl-demo-0.0.1-SNAPSHOT.jar > logName.log 2>&1 &

注意:不要写成nohup  

查看当前日志

cat logName.log

cat /sur/app/logName.log

 

打开日志发现8080端口已经被使用了,所以我们要修改端口重新打包一次。 

重新上传执行指令 

nohup java -jar import-execl-demo-0.0.1-SNAPSHOT.jar > logName.log 2>&1 &

linux中所有基础命令失效,显示找不到该命令

原因:

有可能是之前修改了etc/profile.d目录下的环境变量配置文件导致。

解决办法:

方法一:恢复配置文件。

如果记得修改了配置文件那个地方,可以将配置文件修改回去,然后再保存更新。

方法二:直接在linux命令行界面输入如下,然后回车(导入环境变量,以及shell常见的命令的存放地址):

 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

方法三:如果系统所有命令都不能使用时,可以使用绝对命令vi打开profile

/bin/vi  /etc/profile.d/环境变量文件名
# 在系统的配置文件里添加[环境变量]地址
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

心得:

服务器的环境配置比较容易解决,个人感觉比较棘手的是跨域问题和Nginx代理的配置问题,跨域问题通过杨海钰同学的帮助在前端添加代理已完美解决;部署服务器后由于Nginx的重定向机制,总是将post请求转为get请求,改了无数次最后发现是一个location中的“/”发生的问题,最后也是在许敏浩同学的帮助下完美解决,非常感谢两位同学的帮助帮我解决了这两个问题!

Nginx好文章:

https://wenku.csdn.net/answer/941b166eec6e2a18505ebeac6c922c98

 Nginx中location配置详解_51CTO博客_nginx location配置详解

https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=4880dbce99218bf99735e1737f2cbb74&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D123688681%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.com https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=3ec558b7a7b0a18809dba770773c1248&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D129315682%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.com

https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=c023547d1653fdb03aeceab60f3046e8&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D126000262%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.com https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=1aa98da0b91586c001c00e59ea88b641&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D125947556%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.com


http://www.ppmy.cn/news/657571.html

相关文章

PhotoZoom2020pro激活序列号秘钥下载8版安装教程

Photozoom pro8中文版是一款为用户提供专业图片放大处理技术的工具,它为专业版,和普通版相对于而言拥有更多性能,并且与ps、AE、Lightroom以及Corel PaintShop Pro相兼容,支持众多自动化插件的使用,图片优化效果更加&a…

cdr2020永久序列号及试用过期解决

Coreldraw Graphics Suite2020是加拿大Corel公司的平面設計軟件;該軟件是Corel公司出品的向量圖形製作工具軟體,這個圖形工具給設計師提供了向量動畫、頁面設計、網站製作、點陣圖編輯和網頁動畫等多種功能。 該影像軟件是一套屢獲殊榮的圖形、影像編輯…

Vegas18 pro视频编辑软件下载官方激活码-序列号-密钥版-注册

Vegas Pro 18的AI-人工智能和GPU硬件加速功能,能够有效加快视频创作的流程,同时搭配Sound Forge Pro 14,实现音频编辑的精细化。在非线性编辑方面,Vegas Pro再次成为创新领导者。 现代化的用户界面可提供可定制的体验,…

0基础学习VR全景平台篇 第52篇:高级功能-开场加载!

大家好,欢迎观看蛙色VR官方系列——后台使用课程! 本期为大家带来蛙色VR平台,高级功能-开场加载! 功能位置示意 一、本功能将用在哪里? 开场加载,指作品制作上线,观看者打开VR漫游作品首先看到…

07-Flink的keyby怎么实现的分区?分区、分组的区别是什么?

一:题目 Flink的keyby怎么实现的分区?分区、分组的区别是什么?二:答案 Keyby实现原理: 对指定的key调用自身的hashCode方法》hash1 调用murmruhash算法,进行第二次hash 》键组ID 通过一个公式&#xff0c…

俄罗斯4 部历史影视剧-俄文难学吗

俄文影片,让你一边学俄文,一边探索俄国的历史、文化: 1.救国同盟 Союз спасения 这是一部比较新的俄文电影,于 2019 年末上映。主要讲述一群 3000 人的俄国士兵(又称十二月党人 (Декабристы)&a…

中国电影史

中国电影史(自学使用,无商业用途) 1.中国电影的诞生《定军山》 1.简介 1905年4月,北京丰泰照相馆的老板任景丰,指导其照相师刘仲伦用一台极其原始的法国手摇摄影机和十几卷胶片拍摄了著名京剧演员谭鑫培演出的《定军…

第一天 时差

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int hour1, minute1; int hour2, minute2; scanf("%d %d", & hour1, &minute1);//输入 scanf("%d %d", &hour2, &minute2); int t1 hour1 *…