(新手向)从零开始将springboot项目部署到云服务器(ecs)上

      最近用springboot写了一个个人博客项目,正好之前趁着活动免费领取了一个阿里云的云服务器ecs,于是准备把项目部署到服务器上。对于我这种纯新手来说,部署过程可谓是踩坑无数,好在最后还是成功了。
      这里跟大家分享一下完整的步骤,尽量帮助大家排坑。

      2020.4.3更新:
      最近买了一个域名,通过解析和备案,可以通过域名直接访问项目了嘻嘻
欢迎大家来我的博客玩————君の名は
项目源码地址:https://github.com/Mitsuha666/blog

1. 购买和配置云服务器

阿里云腾讯云等等的都可以,我选择的系统是centos7,关于服务器详细的博客网上有很多了,我这里就不赘述了。

2. 本机下载XShell 6 与XFtp 6

XShell 6:用于远程连接你的服务器
XFtp 6:用于把本地文件上传至云服务器
官网下载地址:Xmanager中文官网

下载安装后,打开xftp6,新建一个会话(连接):
在这里插入图片描述
设置会话属性:
在这里插入图片描述
连接完成,可以看到服务器的文件目录:
在这里插入图片描述
xshell6的连接方式和xftp6基本相同,这里就不放图了

3. 云服务器安装宝塔面板

由于我是新手,对linux命令什么的都还不了解,就先用宝塔救急,大家日后还是要学习linux的呀,毕竟咱作为程序员,linux肯定是要会的。

打开xshell6,连接到服务器:
在这里插入图片描述
输入命令:选择自己的操作系统版本的命令,回车执行

Centos安装命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

Ubuntu/Deepin安装命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

安装完成后,可以看到一个url地址,通过它可以访问你的宝塔面板界面
记住这里的用户名和密码,用来登录宝塔。
注意:如果访问不了宝塔,去服务器控制台安全组看看有没有开放宝塔默认的端口号8888
在这里插入图片描述
输入上面的用户名和密码
在这里插入图片描述

登录成功后进入宝塔界面,第一次进入会提示安装环境,安装推荐的LNMP,选择编译安装(需要几个小时时间安装)。

在这里插入图片描述
至此,宝塔配置完毕。

4. 云服务器安装jdk

先在本地把linux版本的jdk压缩包下载好

由于官网下载要注册oracle的账号
贴一个好心博主的下载地址:https://blog.csdn.net/qq_21187515/article/details/84850814
下载jdk的oracle官网:
http://www.oracle.com/

再通过xftp6把压缩包传输到服务器上
这里我把压缩包放在了/usr/java/jdk文件夹中:
在这里插入图片描述
用xshell6执行解压操作:
注意:要在压缩包当前文件夹下执行命令

cd /usr/java/jdk
tar -zxvf jdk-8u11-linux-x64.tar.gz

解压完毕后,需要配置环境变量,
这里我们用xftp修改etc目录下的bashrc文件,在最前面添加:

export JAVA_HOME=/usr/java/jdk/jdk1.8.0_11 
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

然后保存文件退出
打开xshell运行指令:

source /etc/bashrc

然后永久环境变量就可以生效啦

执行java -version查看是否配置成功
在这里插入图片描述

5.Navicat连接云服务器的mysql

1)本地导出数据库.sql文件,把自己项目的数据库文件导出
在这里插入图片描述
2)连接云数据库,SSH和常规的信息都要写
在这里插入图片描述
在这里插入图片描述
3)在云服务器的mysql中,新建同名数据库,执行.sql文件即可

6. 打包SpringBoot项目为jar包,上传到云服务器上并运行

这里有一个坑:springboot配置文件中数据库密码是云服务器上数据库的密码,错了会导致项目无法连接到数据库。
在这里插入图片描述
云服务器数据库的密码可以在宝塔里面找到:
在这里插入图片描述

在idea中打开项目,右侧maven,先执行clean,再package。
在这里插入图片描述
执行成功后会生成一个.jar文件,把它放到云服务器中:
在这里插入图片描述
在当前目录下,执行命令:

java -jar xxx.jar

大功告成!!!
在这里插入图片描述
通过IP:端口号,即可访问项目
在这里插入图片描述

7.通过域名访问项目

1.首先你需要购买一个域名

2.域名购买后需要实名认证

3.解析域名

阿里云的控制台里有域名解析的新手引导,可以很方便的完成域名解析
在这里插入图片描述
4.域名备案

解析完成后,如果想通过域名访问服务器ip,需要进行备案,备案的周期一般在7-20天左右,我是审核了11天通过的。

5.访问网站

备案成功后,就可以通过域名:端口号的方式访问项目了
跟之前IP:端口号的形式类似
如果觉得加上端口号太麻烦,可以把项目的端口号改成80
当访问域名的时候,端口默认指定的是80;

如果80端口没有其他程序占用的情况下,就可以直接通过域名访问项目了

但是往往事与愿违,我的80端口就被占用了
输入命令,

lsof -i:80

可以看到正在占用我的80端口的进程,nginx和AliYunDun
在这里插入图片描述
示例解决方法:

1.将nginx的默认端口从80改成别的

2.干掉AliYunDun,输入下面的命令

sudo fuser -k 80/tcp

当80端口没有被占用的时候,即可通过域名直接访问项目了!

8.项目在服务器上永久运行方法

在xshell中通过命令启动项目后,如果关闭xshell和服务器的远程连接,项目就会停止运行,怎么才能让项目在服务器的后台一直运行呢?
方法如下:

(1)在xshell输入命令:

nohup 你的shell命令 &

例:我的命令

nohup java -jar blog.jar &

(2)回车,使终端回到shell命令行;

(3)输入exit命令退出终端:exit

(4)现在可以关闭你的终端软件了,等过足够的时间,让你的shell命令执行完了再上去看结果吧。

其中,nohup命令可以让你的shell命令忽略SIGHUP信号,即可以使之脱离终端运行;“&”可以让你的命令在后台运行。

以脱离终端的方式在后台运行shell命令有这样几个好处:只要你执行过了命令,那么你的网络中断不会对你有任何影响,并且你就可以关闭终端软件了。

如果需要终止后台允许的项目,使用kill命令终止:

kill -9  PID

9.shell命令报错

出现类似报错

-bash: nohup: command not found

解决方法:

在/etc/profile文件中加上:

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

然后执行:保存对配置文件的修改!

source /etc/profile
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章