linux配置的war执行时未部署,Linux 下部署springboot项目 war包和jar包 (超详细教程)...

最近需要在Linux 上部署javaweb 项目,javaweb 项目可以自己打包成war包,或者jar 包部署,下面说一下2种包的部署方式。

以下长文警告,点击目录快速访问

目录

部署war 包

一:将springboot项目打包成war包

排除内置tomcat

添加servlet-api的依赖

配置打包类型

在启动类继承SpringBootServletInitializer,重载configure方法

war打包

二:打开宝塔面板,部署war 包

把war包上传到 webapp目录下

添加网站

开启 tomcat 服务

访问项目

注意的点

部署jar 包

一:把springboot 打成jar包

配置maven

打包jar

二:打开宝塔面板,部署jar 包

添加网站

上传jar包到网站根目录

运行jar包

第一种方式:使用nohup命令后台运行

第二种方式:使用宝塔自带工具进行部署

第三种方式,编写shell脚本

拓展

静态文件分离部署

部署war 包

一:将springboot项目打包成war包

!如果已经打包好了war包,可直接跳过当前步骤

排除内置tomcat

org.springframework.bootgroupId>

spring-boot-starter-tomcatartifactId>

exclusion>

exclusions>

添加servlet-api的依赖

javax.servletgroupId>

javax.servlet-apiartifactId>

providedscope>

dependency>

如下

3067b1aeca439fdf44cf54fcb560dac1.png

配置打包类型

warpackaging>

ec2975ea0a27eb02135b14289056e14e.png

在启动类继承SpringBootServletInitializer,重载configure方法

32c21d062861c3f54808de3f924ddb41.png

war打包

点击右边的tool bar -> maven project

点击clean 清除旧包,

点击package 打包

11ffe5e11af151bfe2bf126a07514f81.png

查看控制台输出信息,build success 表示成功

32bf048db8814b9420e8f0b97592f5e9.png

如下

84512e086effa20e6d4302d0c8b3023f.png

二:打开宝塔面板,部署war 包

把war包上传到 webapp目录下

一般目录为:/www/server/tomcat/webapps/

解压缩war包,然后简化一下名字

02c3315eca38141d5880bbac87a0d241.png

74b8dcaeb11868f3621d62eab599dc74.png

添加网站

如果没有域名,直接写你服务器的ip地址就行了,或者随便写一个域名www.baidu.com ,反正人家也解析不到你这里,随便填一个就行。

如果有域名,直接添加A记录,然后ip绑定到 你服务器的ip。

我这里通过域名管理,解析A记录,绑定二级域名到本服务器ipfe30e3324455154c9f5b70c7030a232b.png

注意! 这里的根目录要绑定到刚刚的war包项目位置

5350ed81c68ce19be38040a809261b63.png

添加成功:180b79738533e37a6e0c2c0a1f14e064.png

这几个文件是添加网站后,宝塔自动创建的,不想用可以删掉

48642015c0e2e722189719cbbd832c06.png

开启 tomcat 服务

bc144ed09935f55d2e0876871e2a18c8.png

ce914fda6a8b6d6131eb839e16b465a7.png

访问项目

点击启用tomcat 过几分钟基本就能访问到你的项目了,

如果没有域名的话,访问路径就是 http://你的服务器ip:8080/项目名/

df7c30442f750e4c186e21d713671f78.png

有域名,直接访问域名即可: http://war.klblog.top:8080 (下面我设置tomcat端口为80,所以不用加8080端口即可访问到) ab9fcac668e5ac53e5e9d234152d2abb.png

注意的点

tomcat 的访问域名要设置成80端口,才能通过纯域名访问。如果是8080端口,域名访问则为: http://war.klblog.top:8080/

修改为80端口,配置文件如下:

dd841ba2277234e082abaee66c733bd5.png

2d8ae5a688f564393bac87558bf81e48.png

保存,重启项目,等待几分钟之后,查看安全组策略,端口是否被监听。显示正常,即为tomcat成功启动。

23bd8b79af5f3b1a0eded6a63f8aca08.png

官网解释如下:

d2f2e2cdcde05aeabeb9f462d445eaa7.png

部署jar 包

一:把springboot 打成jar包

配置maven

如果配置过war包,则需要注释掉相应配置!

如果之前是打成war包的,注意packaging标签是不是为war,需要改成jar

jarpackaging>

删掉排除tomcat包的配置

bebf0086480864d0a73abf96142e8ec9.png

然后把启动类的configure方法也删掉

562d7744d36723ef0c2d9b3198ce6033.png

打包jar

springboot 默认打jar 包,如果之前未配置过war包,可以直接点右边的maven 项目 然后 clean 最后 install

da51e51c107751376a095a032252907b.png

查看控制台,build success 表示成功,并且给出了打包后的文件路径

aa26f9e2dbb50027bfc31b9a15612b0f.png

查看打包文件

e4ebc76f57202e0e7589bf2d073609bf.png

二:打开宝塔面板,部署jar 包

添加网站

这里的话域名怎么填写,借鉴war包步骤中的方法。

主要就是根目录可以不用更改,这里只需要填写域名,然后点击提交

5871af5824048e8a814408fb657e4d3e.png

上传jar包到网站根目录

9cd240cf206373bbc72159af03f8e3f1.png

这里可以外置配置文件,如果没有的话,默认使用jar包里的。

0c62b159dc13bfafbf71c6d13c59eeee.png

运行jar包

第一种方式:使用nohup命令后台运行

进入ssh终端,cd到项目跟目录 然后输入:

nohup java -jar 你的jar包名.jar > 日志文件名.log 2>&1 &

nohup命令的用法:https://www.cnblogs.com/keystone/p/11159665.html

如下:c80a92de319845d387db8030dcd34bee.png

可以看到创建了output 日志文件,代表成功执行命令。

0178647574bbb31c871da8c1768cc7eb.png

启动成功。

47e7941aba592e27553690b01a1bd0f1.png

第二种方式:使用宝塔自带工具进行部署

先根据第一种方式,创建网站。上传jar包,然后再进行下面的步骤!

在宝塔软件商店,安装这个软件

ec1d9ac39e6eb01065d91ab4dc63ff4f.png

安装好之后,点击添加项目,选择jar包,输入端口号,确定。等待几分钟即可访问项目。

a26d72d3f0b297a59bb5500c808cb52e.png

第三种方式,编写shell脚本

先将你打包好的jar包重命名为 springboot.jar

在项目的同级目录下,创建2个文件

start.sh

#!/bin/sh

rm -f tpid

nohup java -jar -Dloader.path=classes,lib 这里写你项目的jar包例如:springboot.jar --server.port=这里是端口号 > ./logs/console.log 2>&1 &

echo $! > tpid

echo Start Success!

stop.sh

#!/bin/sh

APP_NAME=这里写你项目jar包名字例如:springboot

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`

if [ ${tpid} ]; then

echo 'Stop Process...'

kill -15 $tpid

fi

sleep 5

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`

if [ ${tpid} ]; then

echo 'Kill Process!'

kill -9 $tpid

else

echo 'Stop Success!'

fi

然后进入终端,进入项目所在目录,

执行命令 ./start.sh 看到 Start Success! 说明开启成功

执行命令 ./stop.sh 看到 Stop Success! 说明成功关闭

请记得放行指定的端口!

第一和第二种方式,都访问成功。

98757ce3a14c573103c5eda0d2abb309.png

拓展

静态文件分离部署

很多时候,我们需要更改一些springboot的配置,但是打包成jar 后配置文件跟着一起打包了,这个时候我们就要分离静态文件

很简单,只需要在启动的时候指定路径就好了

下面创建2个文件

#!/bin/sh

rm -f tpid

nohup java -jar -Dloader.path=classes,lib springboot.jar --server.port=9001 > ./logs/console.log 2>&1 &

echo $! > tpid

echo Start Success!

以上就是全部内容,如果有任何错误的地方,请大家指正。谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值