【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)

文章目录

    • 配置 Tomcat
    • 将 Tomcat 启动命令设置为 Linux 自定义服务
    • 给 Tomcat 设置管理员账号密码
    • IDEA 打包 Java web 项目

我是使用 sdkman 下载的 jdktomcat,所以接下来的部署配置都是在 sdkman 构建的环境的。想要知道如何下载 sdkman 可以看看这篇文章 — 使用 SDKMAN 管理多版本本地 Java 环境—Centos8 & Windows

配置 Tomcat

# 下载 tomcat
sdk install tomcat xxx

# 授予权限
sudo chmod -R 775 /root/.sdkman/candidates/tomcat/

# 启动 tomcat--cenrrent 目录下
bin/startup.sh
# 将出现
Using CATALINA_BASE:   /root/.sdkman/candidates/tomcat/current
Using CATALINA_HOME:   /root/.sdkman/candidates/tomcat/current
Using CATALINA_TMPDIR: /root/.sdkman/candidates/tomcat/current/temp
Using JRE_HOME:        /root/.sdkman/candidates/java/current
Using CLASSPATH:       /root/.sdkman/candidates/tomcat/current/bin/bootstrap.jar:/root/.sdkman/candidates/tomcat/current/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

# 本地访问默认为(有开启防火墙需要关闭防火墙或者开放 8080 端口) 8080-即本地 ip + :8080

# 关闭 tomcat--cenrrent 目录下
bin/shutdown.sh

这个时候我们就可以通过虚拟机 ip:8080 就可以看到 tomcat 服务的默认页面了
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第1张图片
出现这个页面就算成功了。

将 Tomcat 启动命令设置为 Linux 自定义服务

不过,现在的 tomcat 需要我们自己到 tomcat 目录下使用它的 startup.shshutdown.sh 进行启动和关闭,这就很麻烦,所以我们接下来就将 tomcat 在 centos 中进行设置为 service 服务。

/etc/init.d/ 目录下新建文件,命名为 tomcat

touch /etc/init.d/tomcat

将以下内容粘贴到 tomcat 文件中

#!/bin/bash
# description: Tomcat7 Start Stop Restart
# processname: tomcat7
# chkconfig: 234 20 80
JAVA_HOME=/root/.sdkman/candidates/java/current
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/root/.sdkman/candidates/tomcat/current
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;; 
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;   
esac 
exit 0

保存后设置 tomcat 的文件属性,将 tomcat 修改为可运行的文件

chmod a+x tomcat

# 设置服务运行级别
chkconfig --add tomcat

# 查看自定义服务
chkconfig --list

# 将出现
tomcat          0:关    1:关    2:开    3:开    4:开    5:关    6:关

# 可使用命令
service tomcat start
service tomcat stop
service tomcat restart

# 或则使用
systemctl start tomcat
systemctl stop tomcat
systemctl status tomcat

查看状态是这样的就算成功了!
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第2张图片

给 Tomcat 设置管理员账号密码

完成这个操作以后,我们回到 tomcat 本身上来。一般来说,tomcat 管理页面是进不去的,这是因为我们还没有配置管理员账号密码。
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第3张图片

# 停止 tomcat 服务
systemctl stop tomcat

# 修改配置文件
vi /current/conf/tomcat-users.xml

# 可以看到该文件基本上都是注释,我们只需要在最后(最后一个标签里)以下代码:
<role rolename="manager"/>  
<role rolename="manager-gui"/>  
<role rolename="admin"/>  
<role rolename="admin-gui"/>  
<role rolename="manager-script"/>  
<role rolename="manager-jmx"/>  
<role rolename="manager-status"/>  
<user username="admin" password="admin" roles="admin-gui,admin,manager-gui,manager,manager-script,manager-jmx,manager-status"/> 

# 进入 webapps/manager/META-INF/context.xml
# 注释以下内容
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
       allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

# 启动服务
systemctl start tomcat

tomcat-users.xml 修改后应该是这样的:
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第4张图片
context.xml 修改后应该是这样的
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第5张图片
配置完成后,我们再次点击进去没有错误,显示这样的就没有错误
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第6张图片

IDEA 打包 Java web 项目

在 IDEA 中打开需要部署的项目,这里需要注意下:本地 tomcat 的端口需要和虚拟机上的 tomcat 开放的端口一致,我这里因为我虚拟机中开放的端口是 8080,所以我在 IDEA 直接配置 8080 端口了。
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第7张图片
配置好端口以后,接下来就直接打包项目了
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第8张图片
选择以后会弹出一个选择框
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第9张图片
打包以后会生成一个压缩包,这个就是我们打包以后的产物
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第10张图片
将这个压缩包复制到虚拟机中的 webapps 中即可【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第11张图片
然后刷新一下 tomcat 服务页面,就可以看见我们刚才上传的打包产物了
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第12张图片
最后,进入这个路径检查一下
【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)_第13张图片
成功!

你可能感兴趣的:(后端,java,tomcat,centos,服务器,sdkman)