前面给大家讲了一个点餐系统的开发,包括java点餐后台和微信点餐小程序。可是都是教大家如何在本地把项目跑起来。今天就来教大家如何把这个点餐系统部署到服务器,实现商用。
传送门
点餐系统的开发,java后台+微信小程序:https://blog.csdn.net/qiushi_1990/article/details/97749686
本节知识点
- 1,使用springboot开发java项目
- 2,小程序后台的开发
- 3,小程序后台部署到服务器
- 4,java项目部署到服务器
- 5,springboot项目部署到服务器
准备工作
- 1,需要购买一台腾讯云服务器
- 2,需要开发一个springboot后台项目
- 3,需要购买一个域名,并做备案。
- 4,需要配置你的服务器环境 jdk,mysql(下面会做讲解)
我们默认你上面的准备工作都做好了,下面我们就来开始学习把后台项目部署到服务器,让所有人都可以访问到你的服务器。
一,首先创建一个springboot(java项目)
1,创建springboot项目,选用jdk1.8
2,填写包名,选择配置,这些保持默认即可
3,添加一些项目依赖,使用最新springboot版本2.1.7
4,项目名,项目目录设置。可以保持默认
5,导入依赖,下面两种方式都可以。
6,实现一个简单的后台数据接口
如果上面这些简单的创建一个项目的步骤你不是很懂,可以看下我录制的java零基础视频:https://edu.csdn.net/course/detail/23443
- 7,本地运行项目
8,运行成功的标示,在run里看到控制台日志显示项目端口是 8080
9,浏览器里访问本地项目,查看访问效果。可以看到我们成功的访问到了后台数据。
二,项目打包
上面给大家演示的是在idea开发者工具里启动的项目,我们正常部署服务器的时候,肯定不会有开发者工具的,所以我们接下来要先学会项目打包,然后在本地通过命令行的方式运行后台项目。
- 1,项目打包
- 2,打包成功
- 3,修改jar的名字(也可以不改名字,我是觉得这个jar名字太长,所以改一个短的)
我这里改名为qcl80.jar 建议大家也改成这个名字,因为后面运行脚本里用的就是qcl80这个名字,大家和我保持一致,省得出问题。
三,命令行运行jar包
1,把上面的qcl80.jar这个文件拖动到我们的项目里,并打开idea自带的命令行
2,命令行里输入 ls
3,命令行里输入 java -jar qcl80.jar
注意:如果你这里提示java命令不存在,你需要配置下java的环境变量。这里不做讲解,自己百度下 ‘java 环境变量’ 就可以找到一大堆教程。
- 4,输入上面命令后,回车键,即可启动项目
这时候再去浏览器里访问,还是可以访问到的
四,服务器环境的登录
我们前面三步,都是在自己的本地电脑启动的后台项目,这样我们只能在自己的电脑浏览器访问到,别人是访问不到的,如果想让别人访问,就需要把我的qcl80.jar这个文件传到服务器上,并且在服务器上通过命令行启动这个java项目,这样别人才可以访问到
所以我们接下来要讲服务器环境的搭建。
- 1,首先我们要买一台云服务器(推荐阿里云或者腾讯云)
- 2,买完服务器后我们登录服务器后台,这里以腾讯云为例。
- 3,点击登录
重置密码方式
- 4,输入实力的账号和密码,登录linux服务器
- 5,登录成功
大家不要看到一堆命令行,就头疼,我接下来会教大家如何一步步配置服务器环境的。大家只需要跟着我的步骤,一步步来就可以了。
五,linux服务器安装jdk
- 1,采用yum安装jdk1.8,非常简单
yum search java|grep jdk 查看yum库中jdk的版本
yum -y install java-1.8.0-openjdk* 安装jdk8
耐心的等待jdk的安装,大概2分钟左右,出现下面标志,即代表安装成功
- 2,检查jdk是否安装成功
命令行里输入 java -version 出现下面标示,可以看到我们的jdk版本 1.8.0_222
六,上传jar包到服务器
我们第五步已经在linux服务器上成功的安装了jdk,接下来就是要想办法把qcl80.jar传到服务器了。可能有同学要问了,你部署服务器,不要在linux服务器里安装tomcat吗,其实我们用springboot开发出来的jar包,已经有内置的tomcat了。所以我们不用再部署tomcat了,只需要把qcl80.jar这个文件上传到服务器,然后用java命令启动即可。
我们上传文件到Linux服务器用下面这个软件
你只需要去百度下你电脑对应系统的安装包,安装即可。具体怎么安装这里就不教大家了。
下面教下大家如何使用FileZilla上传文件到服务器。
1,打开FileZilla软件, 链接服务器
2,去服务器根目录看看
3,上传文件到home文件里,如果在父亲根目录没有home文件,可以自己新建。
到这里我们就成功的上传qcl80.jar到服务器了。下面就教大家如何在服务器里启动我们的项目。
七,在服务器里启动java后台项目
1,首先重复上面第四步登录服务器。然后在服务器里输入
cd.. #用来返回服务器根目录
ls #显示当前根目录有那些文件
cd home #进入home文件
ls #显示home文件里都有那些子文件,可以看到我们的qcl80.jar
2,启动java项目
java -jar qcl80.jar
3,项目启动成功,出现下面的标示,即代表项目启动成功
4,访问我们服务器的项目
通过上图可以看到,我们通过公网ip+8080端口,可以成功的访问到我们服务器的数据了。
- 我们再用手机浏览器试试
可以看到我们在手机浏览器里也可以访问到后台数据了。你把上面的这个网址发给你朋友,你朋友应该也可以访问到数据了。
到这里我们就成功的把一个java项目部署到服务器,并成功的可以让任何人访问了,但是有个问题,你用公网ip做域名,很容易被封的,基本上能成功访问几次以后,就会被拒绝访问了
所以我们接下来还要讲解如何通过域名访问我们的服务器
我会把这些录制成视频来给大家做讲解,
讲解视频地址:https://study.163.com/course/courseMain.htm?courseId=1209428915
八,服务器绑定域名
我们在做域名绑定之前,需要你先自己去注册一个域名,比如我注册的域名是:“www.saibanmall.com”,我这里还是以腾讯云为例
-
1,登录腾讯云后台,找到自己的域名列表,点击解析
-
2,添加解析规则
-
3,绑定自己服务器的公网ip到解析规则
-
4,我们主要设置下面两个解析规则
这样把我们服务器公网ip和域名绑定以后,就可以通过域名访问我们的服务器了,效果如下。
再来看下手机浏览器访问的效果
还有我们小程序访问的效果。
到这里我们就成功的部署好我的后台服务器了,但是还有几个问题
- 1,小程序上线的话需要https请求,所以我们后面还会讲我们的服务器如何支持https
- 2,我们通过java -jar qcl80.jar部署的java项目,不能后台运行。所以我们后面还会讲如何让我们的java项目常驻后台运行。
九,java项目在服务器后台长期运行
我们通过上面的方法,会有一个问题,就是我们命令行窗口关闭时,会导致java项目停止,所以我们要通过脚本实现java项目在后台长期运行。
springboot生成的jar在阿里云的linux服务器后台运行
通过创建stop.sh , start.sh ,run.sh这三个脚本文件来实现后台长久运行springboot
这里我把运行的qcl80.jar ,start .sh,stop.sh ,run.sh都放在home下的jar目录下
- 1,创建stop.sh
vim stop.sh 创建文件然后把下面内容复制进去,一定要把qcl80.jar替换成你的jar
#!/bin/bash
PID=$(ps -ef | grep qcl80.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
- 2,创建start.sh,
这里我们用80端口,这样可以直接通过ip访问,不用再输端口了
vim start.sh 输入这个命令后然后把下面的内容复制进去
#!/bin/bash
nohup java -jar qcl80.jar --server.port=80 &
- 3,创建run.sh
整合了关闭和启动的脚本:run.sh,由于会先执行关闭应用,然后再启动应用,这样不会引起端口冲突等问题,适合在持续集成系统中进行反复调用。
把下面内容复制进去,一定要注意复制时不能少东西
#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh
- 4,start .sh,stop.sh ,run.sh都创建后
./run.sh 运行run.sh脚本
如果遇到没有权限运行的问题,就在run.sh所在目录下执行
chmod u+x *.sh 这样就ok了。
执行完以后,我们可以去nohup.out文件中查看启动的log
cat nohup.out 这个命令可以查看jar启动的log
这个时候我们的项目就启动了,就可以通过下面这个网址访问项目了:http://saibanmall.com/
上面start.sh,stop.sh,run.sh如果觉得写起来麻烦的话,也可以直接获取我写好的。
关于服务器的部署我后面也会录制视频出来,敬请关注。
有问题可以加我微信:2501902696