阅读 251

SpringBoot项目部署到阿里云服务器全流程(简直详细到啰嗦)

SpringBoot项目部署到阿里云服务器全流程(简直详细到啰嗦)

SpringBoot项目部署到阿里云linux服务器全流程

前言:很久没有更新博客了。因为最近公司需要部署一个SpringBoot项目到云服务器上,来来回回折腾了好久,走了很多弯路,这过程中CSDN的博客帮了我很多,所以我自己也写一篇博客上来吧,希望能帮到各位。


首先用一张图来说明一下整个的部署流程


然后开始进入正文


1.申请阿里云服务器

1.1 前往阿里云官网:https://www.aliyun.com/

1.2 注册一个账号,登陆账号

1.3 按如下步骤申请一个云服务器:



1.4按照自己的需要,选择合适的服务器配置,如果对配置不懂的(比如我),那你可以选择“一键购买”,买个差不多的服务器。注册过程中会让你设置账号密码什么的,还有一个远程登陆密码,拿个笔记记下来,丢了就GG了。(如果是土豪,你可以往高了配,但如果是学生的话,可以像我一样注册个学生认证,便宜很多)

注:笔记需要记录的有 远程连接密码(6位数字)、公网IP、服务器账号、服务器密码(有特殊符号,数字,字母的那个)


1.5 购买完成后,回到首页,点击 “控制台”>>“云服务器ECS”>>“实例”




1.6 在实例列表中就可以看到我们购买的云服务器。点进去,我们需要对服务器的安全组进行设置


1.7 安全组中除了自带的规则,我们还需要添加几个新的安全组(这些安全组的具体作用可以看其他博主的文章)



1.8 回到“实例列表”,点击 实例ID 进入服务器,点击 ”远程连接“,输入6位连接密码,就可以看到我们申请的这个服务器了。




1.9 然后我们按任意键登陆登录服务器,输入用户账号密码(密码是很复杂,要求有特殊符号!@#的那个,密码输入过程中是不可见的,输完直接回车就行)

1.10 至此整个阿里云服务器的申请就算完成了。


2.Xshell 的安装使用

2.1 简单测试一下,你会发现网页登陆云服务器的方式有一个弊端,那就是只要一小段时间不操作,服务器就会进入休眠,又得输入连接密码才能激活,很烦。所以我们采用别的方式登录这个云服务器。


2.2 Xshell是一个终端模拟软件,换言之,我们只要在本地Windows系统下安装这个软件,打开输入账号密码,就能登录远程的云服务器


2.3 Xshell下载官网:https://xshell.en.softonic.com/(如果官网下载太慢,可以百度一下Xshell,很多资源,下载最新版的就行,我用的是Xshell 5)


2.4 下载完了选择安装路径开始安装,这个软件很小,安装也简单,安装过程中不会出现问题(新手的我也一路畅通)


2.5 打开Xshell们可以看到如下界面:


2.6 新建一个会话,拿出之前的笔记,将公网IP输入到主机栏,端口号设置为22(服务器的监听端口,ftp默认为21,sftp为22,如果你设置22连不进去,那就换21试一下)


2.7 点击 ”确定”>>“连接”,继续拿出笔记,把服务器账号填进“登录的用户名”,把服务器密码填进“密码”,如下图。



2.8 登录成功,进入服务器。以后我们就可以通过这个界面对云服务器进行远程操控,在上面进行jdk,mysql安装,springboot部署等操作了。



3.云服务器上jdk的安装

3.1 先用Xshell 连接到你的云服务器(或者直接在阿里云官网中远程连接也行)


3.2 在你的本地Windows系统中下载 Linux系统下的jdk,jdk下载官网:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。下载你需要的jdk版本,我用的是 jdk-8u221-linux-x64.tar.gz 。


3.3 下载完以后是这样的


3.4 然后我们要把这个文件传到云服务器上去。听起来很高端,其实很简单的。在Xshell上执行rz命令就可以实现。首先我们要在云服务器上安装这个命令。在Xshell中执行


yum install lrzsz

1


3.5 我们要把上传的文件放到哪个目录,就要先cd进入那个目录。我们申请的服务器的初始目录结构如下:(cd命令:进入目录)


现在我们要把这个jdk安装包放到**/usr/java**目录下(如果没有该目录则需要创建目录。最好跟着我的安装路径来,不然后面的环境设置会比较麻烦),所以我们一步步cd到这个目录下:


然后 rz 把安装包上传上去(rz命令:上传文件)


rz

1

执行rz命令会弹出一个文件选择框,选择安装包上传



上传中,等待上传完毕


传输完毕,点击“关闭”


3.6 使用ls命令查看目录。可以看到,我们刚才上传的安装包已经存在于目录中了(ls命令:查看当前目录下的文件)


ls

1


3.7 接下来解压安装包就算安装成功了!使用tar命令解压压缩包,如果你下载的版本跟我不一样,记得把包名改成你自己的版本 。(tar命令:解压)


tar -zxvf jdk-8u221-linux-x64.tar.gz

1

3.8 然后就跟你在windows系统下安装完jdk一样,你还要设置系统环境变量。linux系统中的设置方法为:找到文件 /etc/profile ,向其中添加如下代码:


export JAVA_HOME=/usr/java/jdk1.8.0_221

export CLASSPATH=$JAVA_HOME/lib/

export PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH

1

2

3

4

先cd进目录 /etc ,再使用 vim命令编辑文件profile(vim命令:编写修改文件内容)


进来以后是下面这个界面,按 e 键入编辑。


3.9 在文件的最后把上面的代码打进去,如果你的jdk版本跟我不一样,记得把 export JAVA_HOME=/usr/java/jdk1.8.0_221 这一行改成你自己的版本。然后按ESC键退出编辑,输入 :wq + 回车键保存退出文件。


3.10 查看文件是否保存成功。


cat profile

1


3.11 立即执行profile文件,使之生效,使用source命令(source命令:依次执行文件所有语句)


source /etc/profile

1


3.12 到这一步,jdk的安装就全部完成了。最后,我们再使用java命令验证一下,如果可以看到我们的版本信息就可以了。


java -version

1



4.linux云服务器安装mysql

4.1 启动Xshell,连接阿里云服务器


4.2 检查系统有没有自带mysql


rpm -qa | grep mysql

1

4.3 一般情况是没有的,但如果有,就卸载


rpm -e --nodeps mysql

1

4.4 使用下面的语句安装mysql


yum install -y mysql mysql-server mysql-devel

1

4.5 我的linux系统版本是centOS 7,这个版本的mysql数据库从默认程序列表中移除了。启动mysql的方法如下,首先安装 mariadb


yum install mariadb-server mariadb

1

4.6 启动mariadb


systemctl start mariadb 

1

4.7 设置开机启动


systemctl enable mariadb 

1

4.8 查看mysql的安装,进入/usr/bin,然后查看


cd /usr/bin

mysqladmin --version

1

2


4.9 mysql安装完毕,启动成功,接下来我们要尝试登录了。mysql自带了一个超级用户root和一个空名的用户,。

因为空名字用户的存在,使得默认情况下mysql不需要账号和密码就可以登录。登录的方式为:


mysql

1


这样就登录成功了,可以直接在上面编写sql语句,不用的时候输入 quit 退出返回到控制台


4.10但出于安全的考虑,我们需要删掉这个空名字用户


use mysql;

1

删除用户


delete from user where user="";

1

更新操作(必须执行)


flush privileges;

1

然后退出


quit

1

再尝试使用mysql命令 进入数据库,报错


mysql

1


4.11 我们删掉了免密登录,那我们怎么进入数据库呢?别担心,我们不是还有一个root用户吗,但是我们没有它的密码怎么办。我们就当自己是忘记了root用户的密码。然后需要用到一段文字:skip-grant-tables,它的翻译是 跳过授权表。顾名思义:,它的作用是将mysql设置为只需账号即可登录。这个操作流程,以后当我们忘记了mysql的用户密码时也可以这么做,具体如下:


查看mysql当前状态


 systemctl status mysqld

1


显示正在运行中,那么要把它停掉(这一步不能省的)


service mysqld stop

1


进入编辑 /etc/my.cnf文件,在[mysqld]字段下添加跳过授权表字段


vim /etc/my.cnf

1

skip-grant-tables

1


然后ESC +:wq +回车 保存退出。启动mysql,并且免密进入


systemctl start mysqld  //或者用重启语句:service mysqld restart 

mysql -u root

1

2


登录成功后先执行一个sql语句


show variables like 'vali%';

1


如果你的查询结构跟我一样是空的,那说明系统对你的用户密码设置不做要求。如果一大堆的文字,那就是你的用户密码的设置规范,需要最小长度为8,包含字母,数字,特殊符号这些要求。根据你的查询结果开始设置密码(如果不是mysql5.7,这里的语句会不一样,百度对应版本修改语句即可),我这里将密码改为 123456(如果你是有设置规范的,按规范设置一个符合要求的)


update mysql.user set authentication_string=password('123456') where user='root';

1


修改完成,一行被执行,还有一条警告(只要不是错误就行,警告不管,哈哈哈)。quit 退出mysql,去 /etc/my.cnf 中,我们不需要免密登录了,把 skip-grant-tables 删掉,保存退出。


quit

1

vim /etc/my.cnf

1



4.12 重启mysql,重启mysql,重启mysql


service mysqld restart 

1

4.13 然后我们尝试免密进入,发现进不去了,系统报错


4.14 使用我们刚才重新设置的密码进入,登陆成功!(为了安全,密码在输入过程中是不可见的,输完按回车确认就行)


mysql -u root -p

1


4.15 至此,mysql数据库也安装完毕了。


5.部署SpringBoot项目

5.1 linux云服务器上的环境我们都已经配置好了,但好像差了一个tomcat?因为springboot内置了tomcat,所以后面我们把它打包成jar包就可以免去tomcat的配置了(如果是打包成war包,那还是要配置tomcat的)。

5.2 回到我们本地windows Springboot项目,下面我们对我们的项目做一些设置

打开pom.xml,添加如下语句,将项目的打包形式设置好


<!-- 打包成jar包 -->

<packaging>jar</packaging>

1

2


打开application.properties,设置项目运行端口(我用的是8800,默认是8080,如果你用的是别的端口,要在这篇文章的1.7章节中把你的端口加入到安全组中去)

打开application.yml,设置端口,连接数据库


5.3 项目打包成jar包,右键项目 >> Run As >> Maven install


项目打包中


5.4 项目打包成功,可以在左边target文件夹中看到项目的jar包


5.5 把这个jar复制到桌面,打开Xshell,使用rz指令把它上传到linux云服务器的根目录


5.6 耐心等待上传成功,使用ls指令可以看到我们上传成功的jar包


5.7 我们要想在linux系统上运行这个项目,就要保证他运行所用的端口没有被占用,不然运行就会报错


查看端口使用情况


netstat -anp | grep 8800   //netstat -anp | grep <端口号>

1


可以看到这个端口被占用了(没被占用的时候不显示任何东西),查看占用端口的PID


sudo lsof -i:8800  //sudo lsof -i:<端口号>

1


我们要把它kill掉,留出空位来运行我们的项目。kill后再次查看端口,可以看到这个端口已经腾出来了(查询为空)


sudo kill -9 26191  //sudo kill -9 <PID>

1


5.8 使用java指令运行项目jar包,这样我们的项目就算部署成功了


java -jar ***.jar  //***为你的jar包名

1


5.9 随便找个浏览器,搜索栏输入http://公网ip:端口号 就可以搜索到你的网站了(如果你跟我一样,买的是学生优惠版的,它的带宽速度只有1M,第一次载入会非常慢,耐心等等,等有了钱,升级个好一点的吧)


5.10 还没完呢,这种启动方式是一次启动,当我们关掉Xshell的时候,我们的网站又访问不上了,又得重新打开Xshell,执行 java -jar ***.jar。所以我们要使用下面的方法让这个项目在服务器上自动不间断地跑.


5.11 关掉重启一下Xshell(这样的话原本的项目就停掉了),创建并编写文件 start.sh,向其中添加字段 : java -jar ***.jar 。按ESC + :wq + 回车键保存退出


5.12 给这个start.sh 管理员权限,然后用nohup指令不间断地运行(nohup指令:忽略所有挂断(SIGHUP)信号,不挂断地运行命令)


chmod 777 start.sh  //赋予管理员权限

1

nohup  ./start.sh &  //不间断运行文件内的指令

1


5.13 使用


netstat -anp | grep 8800

1

查看端口使用情况


5.14 把Xshell关掉,在浏览器上输入http://公网IP:8800 发现项目还是可以进入,说明我们已经设置成功了。至此springboot项目部署到阿里云服务器上完结。


5.15 但是有没有发现我们的网站跟别人的不太一样?别人访问网站都是www.***.com的格式的,而我们却要打一串复杂难记的数字。其实www.***.com是一个类似指针的东西(叫做域名),它指向的地址就是我们公网IP。这个指针在阿里云上就可以申请


5.16在阿里云官网搜索“域名”



5.17 找到和自己心意的域名,选好后在右边的域名清单里给钱结算


5.18 进入控制台,可以看到你购买的域名



5.19 选择你要操作的域名,点击“解析”


5.20 然后按我下面的格式填好,确定保存。


5.21 然后我们就可以通过 www.域名.com:8800 的方式访问我们的网站了


5.22 然后发现,好像还是不对啊,别人家的网站后面不需要带端口号啊。emmmmm,这个就牵扯到备案的问题了,阿里云的客服告诉我,需要购买3个月后的服务器才具备备案资格,备案审核成功后我们才能通过 www.域名.com访问网站。等着吧,现在只能将就用着了。








--------------------------------------------------结语---------------------------------------------------- 

首先,我还是个正在实习的新手,文中有什么疏漏的地方,还望各位大佬在下方评论区指出。有什么写得不清楚的地方也可以在评论一起探讨。我在安装部署这些东西的时候踩了贼多坑,感慨万分,本着帮助别人就是帮助过去的自己的想法,写了这篇长文出来,希望能帮到大家。

另,安利几篇我在安装过程中看到的几篇比较有用的文章给大家,但里面有也有一些细节是错误的,大家借鉴的时候自己勘误。

https://blog.csdn.net/whh18254122507/article/details/78011713

https://blog.csdn.net/pts315414/article/details/79076230

https://blog.csdn.net/qq_34975710/article/details/83989642

https://yq.aliyun.com/articles/292609

https://blog.csdn.net/weixin_39800144/article/details/78836289

https://blog.csdn.net/sinat_30436087/article/details/80669767


----------2020年8月2日 编辑-------------

有小伙伴反应这边博文在数据库安装方面会出现问题,具体原因尚不清楚,我写这边博文装了两次MySQL都是可以用的。评论区也有位大佬解答一些数据库的问题,可做参考。

————————————————

版权声明:本文为CSDN博主「某羊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Mou_Yang/article/details/102137861


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐