记录一下自己第一次部署springboot项目。免得之后又忘了
首先需要准备的东西
咱就一样一样来吧。
首先是云服务器。
我买的时候有活动一台2g的一年58,现在好像没了.....
也可以选择学生的,也不算很贵。
购买链接
镜像的话,我选的是这个宝塔的,对新手比较友好吧,不用自己安装宝塔了。
宝塔的话就是一个图形界面,让你能更容易的操作自己的服务器。
买好之后我们需要对服务器做一个简单的初始化
关机之后对自己的服务器做一个密码重置
在防火墙这里开启一些端口比如,tomcat的8080,mysql的3306,宝塔的8888,等等自己的需求开启吧,我这的8088是我springboot的启动端口。
在应用管理中点击登录
复制命令过去运行一下
将自己的外网地址复制跑一下
会出现一个登录面板,将自己的用户密码输入登录就可以进入宝塔页面
这里第一次进入可以会出现让你绑定秘钥等等东西,跟着提示做一遍,可以选择创建一个子用户,也可以直接用主账号。
然后把推荐的应用安装一下
ok,到这里基本的服务器配置就完成了
接下来,先讲xshell和xftp
两个有一个就可以了,xhell使用命令行对服务器进行操作,xftp有图形界面相对简单一些
咱小白就用简单的吧....
首先去安装xftp 链接
xshell和xftp都是有免费版的,但不能商用,填写用户名和邮箱后下载
下载完成后打开
名称自己随意
主机号填写自己服务器的外网地址
端口必须是22
用户名密码填写自己的服务器用户密码,就是最开始对自己重置的那个。
如果连接失败,那就得看看自己的22端口是不是开启了以及账号密码是不是错了
ok,准备工作做完了,终于要在服务器跑自己的项目了!!!
来到idea中,注意一下自己连接的用户名和密码 ,待会建库要用。
点击maven中的package打成jar包
可以在target目录下 看到我们打好的jar包
我们用刚才的xftp把打好的jar包传到服务器上,最好是自己建个目录放起来这样方便管理,
我们可以在服务器上看到jar包已经存在了
但是,现在还跑不起来,因为服务器还没有配置java的运行环境!!!
linux安装jdk非常方便,没有window那么麻烦,又要下载,又要配置
我们在终端中输入命令java -version看看是否有java环境
显示这个页面,说明java环境是存在的
如果不存在,我们就去装一个
运行yum search java|grep jdk 看看可供选择的jdk版本
我们直接选择1.8的版本。
运行 yum -y install java-1.8.0-openjdk* 命令
安装成功后再跑一下 java -servion试试,有版本就说明是ok的
环境配置好,我们就只差mysql的数据了!!
数据库名必须是你springboot中连接的库名。用户名不能是root,密码要是自己配置代码中的密码
创建好数据库后,去本机上将数据库导出
将数据库导出成.sql文件,,,最好别整太大的数据库,轻量服务器容易跑不动。
导好后,在服务器上点导入
直接用从本地传,传好直接导入。。。。
我们终于是完成了所以所有所有的准备工作!!!!!
我们来到终端里
linux的命令都知道一些吧,这里用最最最最基本的就好了。
找到自己传的jar包的目录
然后把jar包跑起来 java -jar 包名
出现下面的页面说明已经跑起来了
前面是自己的外网地址,然后是自己springboot配置的端口号,,最后是映射路径。
至此我们就把接口整出来了,,把这地址丢给前端,让他们用ajax请求就可以拿到数据。
如果你的项目跑起来了,但是输入地址没有效果,很大的可能是你的端口没有开放,注意我们要在服务器中开启你springboot中配置的端口,宝塔页面中也要开放!
但若果是报错了,那么你就需要自己看看,是不是自己的代码有错,常见的错误是数据库名称写错了,连接失败等等。
最后,我们这样虽然可以把项目跑起来,但是把终端的界面一关就gg,这可肯定是不行的!!那我们就需要把项目挂载上去,让他一直跑起来
运行 netstat -ntlp 可以查看当前所有端口的使用情况。
我们使用nohup命令将项目挂载
nohup java -jar 包名&
如果你的终端和我一样发生这种错误,这是因为nohup命令的日志没有输出文件 ,导致无法挂载
我们可以运行另一条命令
nohup java -jar 包名 >/dev/null 2>/dev/null &
运行完成后
我们再看看进程
8088端口已经挂载了
这时候我们关了终端,jar包也会一直跑。
那么我们想更新jar包,重新跑怎么办
我们可以先kill 8088这个进程,再重新挂载一边
PID号在进程的最右边
运行 kill -9 -PID号
在查看进程
8088的进程已经没了,再去挂载就ok了
ok....这就是我做的过程,及过程中遇到的一些问题吧。。