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

测试地址: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. vxWorks应用程序加载的另一种办法

    现在我们的工作中,应用程序一般都是和BSP联编,然后将vxworks_rom.bin烧到班子里.在BSP启动后,调用应用程序的函数的. 但是这样有个问题,就是应用程序和BSP结合的太紧密了.BSP开发 ...

  2. /opt/apache-tomcat-7.0.57/conf/catalina.policy(权限不够)

    1 错误描述 /opt/apache-tomcat-7.0.57/conf/catalina.policy(权限不够) 2 错误原因 3 解决办法

  3. Dictionary排序

    有时候由于某些要求会对Dictionary排序,一般有两种方法. 1.使用SortedDictionary. 这种自动会对保存的值进行排序. static void Main(string[] arg ...

  4. 将泛类型集合List类转换成DataTable

    /// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...

  5. java用Kruskal实现最小生成树

    今天更新这篇文章超级激动,因为我会最小生成树的算法了(其实昨天就开始研究了,只是昨天参加牛客网的算法比赛,结果又被虐了,好难过~) 最小生成树的算法,其实学了数据结构就会有一定的基础,Kruskal算 ...

  6. 爬数据,能让你少写1000行代码的捷径! | Python 正则表达式

    ▌春暖花开,又到了出门游玩拍拍拍吃吃吃的好季节了! 说到拍照摄影,你会构图吗?就是在照片有限的空间内处理人.景.物的关系,并将三者安排在画面中最佳的位置,以形成画面特定结构的方法. 学院君就是一个「拍 ...

  7. link-cut-tree 简单介绍

    link-cut-tree 简单介绍 前言:这个算法似乎机房全都会,就我不会了TAT...强行搞了很久,勉强照着别人代码抄了一遍qwq 这个本人看论文实在看不懂,太菜了啊!!! 只好直接看如何实现.. ...

  8. 【NOI2004】郁闷的出纳员(splay)

    题面 Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工 作,但是令人郁闷的是,我们的老板反复无 ...

  9. UWP:记录一下这几天踩到的坑

    最近在玩微软的Desktop Bridge项目,遇到了如下几个坑: 1.文档中给的是js项目魔改的方法,其实C#项目也可以魔改加入UWP部分的,区别在于: 不用在项目文件里写<AppxGener ...

  10. Mybatis动态SQL单一基础类型参数用if标签

    Mybatis动态SQL单一基础类型参数用if标签时,test中应该用 _parameter,如: 1 2 3 4 5 6 <select id="selectByName" ...