从零部署Spring boot项目到云服务器(准备工作)
自己的博客终于成功部署上线了,回过头来总结记录一下整个项目的部署过程!
测试地址:47.94.154.205:8084
注:文末有福利!
一、Linux下应用Shell通过SSH连接云服务器
//ssh 用户名@公网IP
ssh josiah@ip
// 输入密码
二、开始搭建SpringBoot的运行环境
1.安装JDK并配置环境变量
1) 打开JDK官网 www.oracle.com
2) 找面最新对应的JDK版本,下载
这里要注意的一个问题是:云服务器下载JDK时一定要在本地去oracle官网去下载后再上传到云服务器上,不能直接通过wget的方式下载,因为下载JDK时要勾选同意它的协议,直接用wget下载链接的话默认不会同意协议,下载的结果就会是一个.html文件,就无法解压安装了。
将压缩包上传到云服务器的命令为:
scp -P /home/josiah/Downloads/jdk-9.0.4_Linux_x64_bin.tar.gz josiah@ip:/home/josiah
3) 将下载好的压缩包解压到指定目录
sudo mkdir Java
tar -zxvf jdk-9.0......tar.gz -C ./Java
4) 配置JDK环境变量
①添加系统环境变量:
sudo vi /etc/environment
加入下列内容:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export JAVA_HOME=/home/josiah/Java/jdk1..0_161
执行配置文件,即让配置文件立即生效
source /etc/environment
②添加用户环境变量
sudo vi /etc/profile
加入下列内容:
export JAVA_HOME=/home/josiah/Java/jdk1..0_161
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
同样执行配置文件,让配置文件立即生效:
③验证JDK是否安装成功
java -version
2.安装Mysql
参考链接:
https://www.linuxidc.com/Linux/2017-10/147460.htm
3.安装Git
sudo apt-get install git
git --version
4.安装Maven
1) 下载Maven安装包并解压
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
tar -zxvf apache-maven-3.5.-bin.tar.gz
sudo mv apache-maven-3.5.2 /usr/local/maven
2) 配置环境变量
sudo vi /etc/profile
加入下列内容:
export M2_HOME=/usr/local/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
执行配置文件,让配置立即生效:
source /etc/profile
3) 修改maven国内镜像
为了加快maven构建速度,添加国内的镜像服务器
①将/home/josiah/apache-maven-3.5.2/conf/settings.xml文件,复制到~/.m2目录下:
cp /home/josiah/apache-maven-3.5./conf/settings.xml ~/.m2
②将下列内容添加到mirrors节点下:
sudo vi /home/josiah/apache-maven-3.5./conf/settings.xml
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
③验证是否安装成功
mvn -version
5.安装Mongodb
由于我的博客项目需要用到Mongodb来存储图片,所以需要安装Mongodb,安装步骤可在另一篇博客中查看。
6.安装gradle
1) 在http://www.gradle.org/downloads页面,下载最新版的gradle压缩包,并上传到云服务器中
scp -P /home/josiah/Downloads/gradle-4.6-bin.zip josiah@ip:/home/josiah
2) 将其解压在/usr/local目录下
sudo unzip gradle-4.6-bin.zip
sudo mv gradle-4.6 /usr/local/gradle
3) 设置环境变量
sudo vi /etc/profile
增加下列内容:
export GRADLE_HOME=/usr/local/gradle
export PATH=$GRADLE_HOME/bin:$PATH
执行配置文件,让其立即生效:
source /etc/profile
4) 验证是否成功
gradle -version
三、打包项目及图片服务器
1. 本地使用Maven打包MyBlog项目,生成可执行的jar文件
1) 修改MyBlog项目中的pom.xml文件,将下列内容添加到mirrors节点下
<!--maven打包-->
<build>
<defaultGoal>compile</defaultGoal>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<fork>true</fork><!-- 如果没有该项配置,可能devtools不会起作用 -->
</configuration>
</plugin> </plugins>
</build>
2) 进入项目根目录,即与pom.xml同级的目录,使用mvn package进行打包
cd MyBlog
mvn package
这时在target/文件夹下就会生成一个.jar文件,执行java -jar jar包名即可启动项目
java -jar blog-0.0.-SNAPSHOT.jar
3) 将打包好的jar文件上传到云服务器中
scp -P /home/josiah/blog-0.0.1-SNAPSHOT.jar josiah@ip:/home/josiah
4) 注意:这里我第一次打包好后启动项目时发现某些页面无法访问,提示模板解析失败,找不到页面
后来查资料发现,打包后再运行的话,Controller类里返回的路径前不能加"/",如下面这种情况,要去掉路径前的“/”:
2.打包图片服务器项目
我的博客中用到了github上一个开源的小型图片服务器,spring boot + Mongodb写的,要将其打包并上传到云服务器中。
该项目使用的gradle工具构建的。
1) 修改项目中的build.gradle文件,加入下列语句:
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
2) 使用下面的命令进行打包
gradle build
3) 此时build/libs目录下就会生成一个jar文件,执行启动即可
cd build/libs/
java -jar mongodb-file-server-1.0..jar
4) 将打包好的jar文件上传到云服务器上
scp -P /home/josiah/java/mongodb-file-server/build/libs/mongodb-file-server-1.0..jar josiah@47.94.154.205:/home/josiah
四、正式开始部署博客
到底之前部署博客的准备工作都已经结束了,接下来开始部署启动项目即可。
最后,给大家推荐一个良心公众号【IT资源社】:
本公众号致力于免费分享全网最优秀的视频资源,学习资料,面试经验等,前端,PHP,JAVA,算法,Python,大数据等等,你想要的这都有
IT资源社-QQ交流群:601357554
微信搜索公众号:ITziyuanshe 或者扫描下方二维码直接关注,
里面基本什么资料都有,基础到进阶到项目实战,如果觉得不够还可以加群跟群主要,最重要的是全部免费!
从零部署Spring boot项目到云服务器(准备工作)的更多相关文章
- 从零部署Spring boot项目到云服务器(正式部署)
上一篇文章总结了在Linux云服务器上部署Spring Boot项目的准备过程,包括环境的安装配置,项目的打包上传等. 链接在这里:http://www.cnblogs.com/Lovebugs/p/ ...
- 【Spring Boot】Spring Boot之使用Alibaba Cloud Toolkit(Idea插件)本地一键部署Spring Boot项目到远程服务器
一.Alibaba Cloud Toolkit(Idea插件)的安装 1)Alibaba Cloud Toolkit 介绍 Cloud Toolkit 是本地 IDE 插件,帮助开发者更高效地开发.测 ...
- Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
最近接外包,需要部署服务器,便是参考了网上的几篇博文,成功在阿里云服务器成功部署了Spring Boot项目,特记下本篇笔记 Spring Boot项目打包 这里说一下部署的一些问题 1.mysql驱 ...
- Linux云服务部署Spring boot项目
Linux云服务部署Spring boot项目 背景: 之前经过两个周的时间,做了一个简单的博客网站,网址:点击进入,在本地可以正常使用以后,想着部署到服务器上,给大家伙看个乐呵,于是有了这篇部署文章 ...
- 使用Docker部署Spring boot项目
Docker是一个使用广泛的Linux容器管理工具包,它允许用户创建镜像,并将其容器实例化.通过本指南,我们可以学习到如何使用Docker部署Spring Boot项目. 先决条件 开发之前,你必须具 ...
- Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏
Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏 云收藏项目已经开源3年多了,作为当初刚开始学习 Spring Boot 的练手项目,使用了很多当时 ...
- Docker Gitlab CI 部署 Spring Boot 项目
目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程. Docker 的安装这里就不赘述了,基本上几行命令都可以了, ...
- Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目
在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...
- 使用 Docker 部署 Spring Boot 项目
Docker 介绍 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口.它是目前最流行的 Linux 容器解决方案. Docker 将应用程序与该程序的依赖,打包在一个文件里面 ...
随机推荐
- 【原】无脑操作:IDEA + maven + SpringBoot + JPA + Thymeleaf实现CRUD及分页
一.开发环境: 1.windows 7 企业版 2.IDEA 14 3.JDK 1.8 4.Maven 3.5.2 5.MariaDB 6.SQLYog 二.Maven设置: Maven目录下的con ...
- Linux之批量挂载硬盘
############parted工具分区############### #!/bin/bash #shell脚本开头格式PATH=/bin:/sbin:/usr/bin:/usr/sbin #保证 ...
- 【原】如何获取Java动态生成类?
写作目的:Java大部分框架,如Spring,Hibernate等都会利用动态代理在程序运行的时候生成新的类, 有的时候为了学习,或者深入了解动态代理,想查看动态生成类的源代码究竟长怎么个样子, 通过 ...
- C# 图解教程 第一章 C#和.NET框架
C#和.NET框架 在.NET之前.NET时代 .NET框架的组成大大改进的编程环境 编译成CIL编译成本机代码并执行CLR Common Language RuntimeCLI Common Lan ...
- 在.NET Core中处理一个接口多个不同实现的依赖注入问题
前言 近段时间在准备公司的技术分享,所以这段时间将大部分时间放在准备分享内容上去了.博客也就停了一下下. 在.NET Core中处理依赖注入问题时,往往是定义好了一个操作规范的接口,会有N多个基于不同 ...
- [Luogu4230]连体病原体
题面戳我 sol 很好想+很好写的一道题,然而比赛中我还是没有切掉qaq. LCT 枚举左端点\(i\),向右移动右端点指针\(j\)找到第一个成环的位置.此时\([i,j],[i,j+1]...[i ...
- POJ3261:Milk Patterns
题面 vjudge Sol 二分答案+分组,判断有没有一个组的后缀个数不小于 k 做法 # include <bits/stdc++.h> # define IL inline # def ...
- [BZOJ1507] [NOI2003] Editor (splay)
Description Input 输入文件editor.in的第一行是指令条数t,以下是需要执行的t个操作.其中: 为了使输入文件便于阅读,Insert操作的字符串中可能会插入一些回车符,请忽略掉它 ...
- 算法精解:DAG有向无环图
DAG是公认的下一代区块链的标志.本文从算法基础去研究分析DAG算法,以及它是如何运用到区块链中,解决了当前区块链的哪些问题. 关键字:DAG,有向无环图,算法,背包,深度优先搜索,栈,BlockCh ...
- 移动端造json假数据时的坑(转义符问题)
最近在 Json 数据的解析上碰到了一些坑,特此记录一下. 正文 迭代开发中,经常出现服务端接口还没开发完成的情况,所以经常需要移动端自己在本地造一些假数据. emmm,虽然说好像造假数据也不是什么很 ...