自己的博客终于成功部署上线了,回过头来总结记录一下整个项目的部署过程!

测试地址: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

同样执行配置文件,让配置文件立即生效:

 source /etc/profile

③验证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项目到云服务器(准备工作)的更多相关文章

  1. 从零部署Spring boot项目到云服务器(正式部署)

    上一篇文章总结了在Linux云服务器上部署Spring Boot项目的准备过程,包括环境的安装配置,项目的打包上传等. 链接在这里:http://www.cnblogs.com/Lovebugs/p/ ...

  2. 【Spring Boot】Spring Boot之使用Alibaba Cloud Toolkit(Idea插件)本地一键部署Spring Boot项目到远程服务器

    一.Alibaba Cloud Toolkit(Idea插件)的安装 1)Alibaba Cloud Toolkit 介绍 Cloud Toolkit 是本地 IDE 插件,帮助开发者更高效地开发.测 ...

  3. Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)

    最近接外包,需要部署服务器,便是参考了网上的几篇博文,成功在阿里云服务器成功部署了Spring Boot项目,特记下本篇笔记 Spring Boot项目打包 这里说一下部署的一些问题 1.mysql驱 ...

  4. Linux云服务部署Spring boot项目

    Linux云服务部署Spring boot项目 背景: 之前经过两个周的时间,做了一个简单的博客网站,网址:点击进入,在本地可以正常使用以后,想着部署到服务器上,给大家伙看个乐呵,于是有了这篇部署文章 ...

  5. 使用Docker部署Spring boot项目

    Docker是一个使用广泛的Linux容器管理工具包,它允许用户创建镜像,并将其容器实例化.通过本指南,我们可以学习到如何使用Docker部署Spring Boot项目. 先决条件 开发之前,你必须具 ...

  6. Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏

    Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏 云收藏项目已经开源3年多了,作为当初刚开始学习 Spring Boot 的练手项目,使用了很多当时 ...

  7. Docker Gitlab CI 部署 Spring Boot 项目

    目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程. Docker 的安装这里就不赘述了,基本上几行命令都可以了, ...

  8. Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

    在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...

  9. 使用 Docker 部署 Spring Boot 项目

    Docker 介绍 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口.它是目前最流行的 Linux 容器解决方案. Docker 将应用程序与该程序的依赖,打包在一个文件里面 ...

随机推荐

  1. 【原】无脑操作: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 ...

  2. Linux之批量挂载硬盘

    ############parted工具分区############### #!/bin/bash #shell脚本开头格式PATH=/bin:/sbin:/usr/bin:/usr/sbin #保证 ...

  3. 【原】如何获取Java动态生成类?

    写作目的:Java大部分框架,如Spring,Hibernate等都会利用动态代理在程序运行的时候生成新的类, 有的时候为了学习,或者深入了解动态代理,想查看动态生成类的源代码究竟长怎么个样子, 通过 ...

  4. C# 图解教程 第一章 C#和.NET框架

    C#和.NET框架 在.NET之前.NET时代 .NET框架的组成大大改进的编程环境 编译成CIL编译成本机代码并执行CLR Common Language RuntimeCLI Common Lan ...

  5. 在.NET Core中处理一个接口多个不同实现的依赖注入问题

    前言 近段时间在准备公司的技术分享,所以这段时间将大部分时间放在准备分享内容上去了.博客也就停了一下下. 在.NET Core中处理依赖注入问题时,往往是定义好了一个操作规范的接口,会有N多个基于不同 ...

  6. [Luogu4230]连体病原体

    题面戳我 sol 很好想+很好写的一道题,然而比赛中我还是没有切掉qaq. LCT 枚举左端点\(i\),向右移动右端点指针\(j\)找到第一个成环的位置.此时\([i,j],[i,j+1]...[i ...

  7. POJ3261:Milk Patterns

    题面 vjudge Sol 二分答案+分组,判断有没有一个组的后缀个数不小于 k 做法 # include <bits/stdc++.h> # define IL inline # def ...

  8. [BZOJ1507] [NOI2003] Editor (splay)

    Description Input 输入文件editor.in的第一行是指令条数t,以下是需要执行的t个操作.其中: 为了使输入文件便于阅读,Insert操作的字符串中可能会插入一些回车符,请忽略掉它 ...

  9. 算法精解:DAG有向无环图

    DAG是公认的下一代区块链的标志.本文从算法基础去研究分析DAG算法,以及它是如何运用到区块链中,解决了当前区块链的哪些问题. 关键字:DAG,有向无环图,算法,背包,深度优先搜索,栈,BlockCh ...

  10. 移动端造json假数据时的坑(转义符问题)

    最近在 Json 数据的解析上碰到了一些坑,特此记录一下. 正文 迭代开发中,经常出现服务端接口还没开发完成的情况,所以经常需要移动端自己在本地造一些假数据. emmm,虽然说好像造假数据也不是什么很 ...