IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 服务器部署Java项目详述 -> 正文阅读

[系统运维]服务器部署Java项目详述

前言

记录一下自己从0到1部署Java前后端项目到服务器上的过程。

过程梗概

首先要先买一个服务器(一般用CentOS7),然后大概步骤是再配置一下所买的服务器环境,再安装下对应我们的Java项目所需要的一些应用程序即可:
在这里插入图片描述
其中 Nginx是用来在前后端之间进行代理的,前台想访问后台就需要Nginx来进行反向代理。因为前台打出来的包是一个静态文件的目录,我们需要用Nginx启动一个端口来访问这个静态目录里的文件。

Nginx的安装

首先我们去我们买的阿里云服务器上复制公网IP,然后用Xshell进行连接:
在这里插入图片描述
在这里插入图片描述
现在就进入我们的linux服务器中了。
在这里插入图片描述
查看一下防火墙状态:
在这里插入图片描述
默认为关闭状态即可。
ping百度也可以成功:
在这里插入图片描述
那么现在我们就来进行Nginx的安装。
首先现在装一下epel源,这是开发人员为linux开发的一款可以下载软件包的工具,不安装它我们无法直接在linux中下载Nginx,我们执行命令装上就行:
在这里插入图片描述
然后再下载Nginx:
在这里插入图片描述
完成安装以后查看一下是否安装成功,看看是否能查看对于Nginx的版本信息:
在这里插入图片描述
启动nginx的话可以直接输入nginx即可启动,但我们想要让它开机自启,那么就需要输入下面的命令:
在这里插入图片描述
查看Nginx进程:
在这里插入图片描述
再加上下面这一句才能实现开机自启:
在这里插入图片描述
现在我们来查看一下Nginx的配置文件,Nginx默认下载在etc目录下,所以我们进入etc下的nginx即可:
在这里插入图片描述
在这里插入图片描述

可以看见nginx.conf就是nginx的配置文件。
我们用vim nginx.conf命令进去看看有啥:
在这里插入图片描述
找到http模块,这个模块里面就是我们相应的一些关于网站的配置,在http模块里面找到server模块,即服务器部分内容:
在这里插入图片描述
可以看见它监听了一个80端口(listen),root即表示为网站内容放在了哪里。
现在我们可以退出,按esc加:wq

现在我们进入刚刚在配置文件中的root部分的一个关于网站内容放在哪里的路径,我们cd进去查看:
在这里插入图片描述

可以看见这个文件里面有一个index.html的主页文件和一个nginx-logo.png的图片文件。
我们接下来用公网IP加上端口号80进行访问:
在这里插入图片描述
现在我们进入index.html用vim进行修改:
在这里插入图片描述
我们进行一点修改:
在这里插入图片描述
保存退出再查看我们刚刚访问的页面:
在这里插入图片描述
可以看见发生了变化。这就是一个静态网站,即Nginx所能处理的一些东西。
但是我们现在并不需要这些东西,所以我们将该文件下的所有内容都删掉:
在这里插入图片描述
现在再访问就会报403访问不到网页:
在这里插入图片描述
那么现在我们再写一点内容保存在index.html中之后,就会发现我们访问Nginx内容就成了index.html之中的内容:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MySQL的安装

进入MySQL的官网,点击DOCUMENTATION:
在这里插入图片描述
找到Mysql手册,下载5.7版本:
在这里插入图片描述
点击之后找到install安装,版本选择linux版本的:
在这里插入图片描述
我们用第一个yum仓库,这是最快的方式:
在这里插入图片描述
点击之后拉到下面进行下载:
在这里插入图片描述
然后会来到一个下载页面:
在这里插入图片描述
这个所下载东西是一个镜像源,和我们刚刚在linux上用yum install epel-realease一个性质。
然后我们下载上面图中的linux7版本,因为我们的linux系统是centOS7版本的,是对应的,我们点击下载之后来到下面页面,我们复制下面那一行nothanks的链接:

在这里插入图片描述
然后进入服务器,输入wget后面跟我们复制好的链接地址:
在这里插入图片描述
回车安装。
可以看见我们在根目录下安装了一个rpm包的MySQL:
在这里插入图片描述
现在我们用yum install 加上mysql压缩包的名字命令将其解压:
在这里插入图片描述
可以看见安装完成。
用下面命令查看一下mysql相关的东西,当使用MySQL yum源时,会自动选择最新的发行版本进行安装,如果不想安装最新版,可以使用以下命令查看可以安装的版本:
在这里插入图片描述
我们可以看见有一个mysql的yum仓库,我们输入下面命令可以看到:
在这里插入图片描述

可以看到上面默认开启的是mysql8.0,而我们要用的是mysql5.7,所以我们要disabled掉这个8.0,enabled这个5.7。执行这个操作之前需要先安装一个东西:
在这里插入图片描述
安装完之后会有一个命令:
在这里插入图片描述

我们敲击这个命令可以进行开启关闭的操作:
在这里插入图片描述
然后再开启一个57的:
在这里插入图片描述

在这里插入图片描述
输入命令现在正式安装:
在这里插入图片描述
这个安装过程在MySQL的官网都有详细说明的,记不住的时候可以去官网查。
在这里插入图片描述
至此安装完毕了。
然后启动mysql:
在这里插入图片描述
然后查看一下mysql状态:
在这里插入图片描述
可以看见已经启动了。查看一下mysql的进程:
在这里插入图片描述
然后我们登录mysql,默认是有密码的,而这个默认密码在下面的目录里面:
在这里插入图片描述
然后在日志文件中可以找到关键词localhost:
在这里插入图片描述
后面的就是密码。
登录mysql:
在这里插入图片描述
可以看见随机生成的非常的繁琐,所以我们做的第一件事就是修改密码:
在这里插入图片描述
然后展示一下数据库:
在这里插入图片描述
所以我们的数据库就安装到这里啦。

安装JDK

首先查看一下自己服务器上有没有其他jdk:
在这里插入图片描述
我的服务器是新的,所以肯定没有了。
输入下面命令:
在这里插入图片描述
可以看见许多版本的jdk,我们安装1.8版本的:
在这里插入图片描述

输入命令进行安装:
在这里插入图片描述
查看版本信息是否安装成功:
在这里插入图片描述
现在开始配置环境变量:
进入/usr/lib/jvm
在这里插入图片描述
用ls -a命令查看文件内容:
在这里插入图片描述
上面蓝色部分的内容为jdk的安装路径,后面会用到。
输入下面命令进行编辑profile文件:
在这里插入图片描述
我们添加下面的信息:

// 编辑profile文件
vim /etc/profile
 
//profile文件中增加如下内容(此处JAVA_HOME路径即为之前java安装路径)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el8_1.x86_64
 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar.:$JAVA_HOME/lib/dt.jar.:$JAVA_HOME/lib/tools.jar
 
export PATH=$PATH:$JAVA_HOME/bin

即如下:
在这里插入图片描述
然后保存退出即可。
最后执行下面命令使环境变量生效:
source /etc/profile。
最后使用javac或者java等命令看看是否有反应,有反应则成功了,若javac无反应的话,试试下面的方法就可以成功:
在这里插入图片描述
至此环境就配置完了。

发布项目

那么现在我们来发布一个简易的小项目。
首先是前端功能,在终端内使用npm run build,可以拿到一个dist文件夹,将这个上传到我们服务器中的/home/user/server文件夹(自己创建的)下:
在这里插入图片描述
在这里插入图片描述
可以看见现在服务器上已经有了该文件夹。
然后现在我们去把后端进行一些操作,主要是对数据库和配置文件,我们新增了一个application-prod的配置文件来帮助在服务器上运行,其中要注意在原配置文件中开启:
在这里插入图片描述

然后prod文件中就写上服务器数据库的一些信息即可:
在这里插入图片描述
然后接下来就是打包了,不详述了。
然后依然是上传文件到server文件夹中去。
在这里插入图片描述
建议是创建一个springboot文件夹,然后将这个jar包放进该文件夹中:
在这里插入图片描述
然后我们进入该文件夹启动jar包:
在这里插入图片描述
输入下面命令后台启动jar包:
在这里插入图片描述
上图中&符号前面的启动参数是为了启动我们刚刚所写的那个prod配置文件的。
输入下面命令查看启动日志:
在这里插入图片描述

可以看见已经在9090端口启动了。
接下里我们就去配置我们的Nginx:
在这里插入图片描述
这个根据具体情况具体设置,具体可以去学习一下nginx 的使用。

最后数据库我踏马直接找了四个小时的bug…
最后终于解决了,因为出现了本地navicat无法连接服务器上的数据库的情况,报错如下:
在这里插入图片描述
遇到这种情况,网上的改表法是可以的!!!
但是一定要注意本地的表要改,服务器上的表也要改!!!
或者授权法也一样,本地要授权,服务器上也要授权!!!
在这里插入图片描述
上面的方法我也用了,但是不一定管用,我最后是在服务器端用了下面的方法解决的:
在这里插入图片描述
即在服务器端使用命令行授权对特定的数据库进行授权,反正这几种方法混着用肯定能行,踏马的我终于成功了!!!(泪目)
现在网站已经能够正式访问了!!
最后还有一个问题,因为之前偷懒的原因,导致项目运行时出现了乱码错误,即在springboot的配置文件中一定要写完整数据库的url:
在这里插入图片描述
后面那一坨要写完整,否则就会出现乱码错误!

总结

耗时两天,终于over了。现在进行一波大总结。
主要是四个让我耗时很久的bug折腾了很久,一一记录以下:

一:maven打包出现“3.2.0resources”错误

这个错误是版本冲突了,降低高版本或者提高低版本就行了。

二:linux环境下安装jdk输入javac无反应错误

这个错误原因是因为缺少一个devel包,只要引入这个devel包即可:
在这里插入图片描述

三:本地navicat无法连接服务器上数据库

这个错误使用网上的改表法或者改权限法都可以解决,但一定要记得改动时不光要改本地的数据库服务器上的数据库也要同时改,具体解决过程上面有详细写过的。

四:出现乱码错误

这个就是当初写源码的时候偷懒的问题了,数据库驱动的url要写全别只写一半,否则报错:
在这里插入图片描述
除了上面四个比较离谱的bug,还有一些知识点应该记录下来:

一、关于springboot项目在linux中进程的启动和终止

在这里插入图片描述

二、查看springboot项目在linux中的日志信息:

使用命令:tailf nohup.out

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 19:10:50  更:2022-03-30 19:12:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:02:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码