运维 之 一键部署Tomcat

简介

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

Tomcat最新版本为10.0.23。

准备文件

  • apache-tomcat-9.0.62.tar.gz
  • jdk-8u361-linux-x64.tar.gz

Script

复制代码
#!/bin/bash
#
#********************************************************************
#Author:        Linux技术宅
#Date:          2024-03-20
#FileName:install_tomcat_for_centos.sh
#URL:           linuxjsz.top
#Copyright (C): 2023 All rights reserved
#********************************************************************
. /etc/init.d/functions
DIR=`pwd`
JDK_FILE="jdk-8u361-linux-x64.tar.gz"
TOMCAT_FILE="apache-tomcat-9.0.62.tar.gz"
JDK_DIR="/usr/local"
TOMCAT_DIR="/usr/local"


install_jdk(){
if !  [  -f "$DIR/$JDK_FILE" ];then
    action "$JDK_FILE 文件不存在" false 
    exit; 
elif [ -d $JDK_DIR/jdk ];then
        action "JDK 已经安装" false
    exit
else 
        [ -d "$JDK_DIR" ] || mkdir -pv $JDK_DIR
fi
tar xvf $DIR/$JDK_FILE  -C $JDK_DIR
cd  $JDK_DIR && ln -s jdk1.8.* jdk 


cat >  /etc/profile.d/jdk.sh <<EOF
export JAVA_HOME=$JDK_DIR/jdk
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=\$JAVA_HOME/lib/:\$JRE_HOME/lib/
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
.  /etc/profile.d/jdk.sh
java -version && action "JDK 安装完成" || { action "JDK 安装失败" false ; exit; }


}


install_tomcat(){
if ! [ -f "$DIR/$TOMCAT_FILE" ];then
        action "$TOMCAT_FILE 文件不存在" false 
    exit; 
elif [ -d $TOMCAT_DIR/tomcat ];then
        action "TOMCAT 已经安装" false
    exit
else 
    [ -d "$TOMCAT_DIR" ] || mkdir -pv $TOMCAT_DIR
fi
tar xf $DIR/$TOMCAT_FILE -C $TOMCAT_DIR
cd  $TOMCAT_DIR && ln -s apache-tomcat-*/  tomcat
echo "PATH=$TOMCAT_DIR/tomcat/bin:"'$PATH' > /etc/profile.d/tomcat.sh
id tomcat &> /dev/null || useradd -r -s /sbin/nologin tomcat


cat > $TOMCAT_DIR/tomcat/conf/tomcat.conf <<EOF
JAVA_HOME=$JDK_DIR/jdk
JRE_HOME=\$JAVA_HOME/jre
EOF


chown -R tomcat.tomcat $TOMCAT_DIR/tomcat/


cat > /lib/systemd/system/tomcat.service  <<EOF
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target 


[Service]
Type=forking
EnvironmentFile=$TOMCAT_DIR/tomcat/conf/tomcat.conf
ExecStart=$TOMCAT_DIR/tomcat/bin/startup.sh
ExecStop=$TOMCAT_DIR/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat


[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now tomcat.service
systemctl is-active tomcat.service &> /dev/null &&  action "TOMCAT 安装完成" || { action "TOMCAT 安装失败" false ; exit; }
}


install_jdk


install_tomcat

脚本说明

此Bash 脚本用于在 CentOS 系统上安装 JDK 和 Apache Tomcat。脚本的主要功能如下:

  • 定义变量
    • DIR:当前工作目录。
    • JDK_FILETOMCAT_FILE:要安装的 JDK 和 Tomcat 的文件名。
    • JDK_DIRTOMCAT_DIR:JDK 和 Tomcat 的安装目录。
  • install_jdk****函数
    • 检查 $DIR 目录下是否存在 JDK 文件。
    • 如果不存在,则显示错误信息并退出。
    • 如果已经存在 JDK 目录,则显示 JDK 已安装的消息并退出。
    • 如果不存在 JDK 目录,则创建目录并解压 JDK 文件到该目录。
    • 创建一个指向具体 JDK 版本的符号链接 jdk
    • /etc/profile.d/jdk.sh 添加环境变量,使系统可以识别 JDK。
    • 刷新环境变量并检查 JDK 是否正确安装。
  • install_tomcat****函数
    • 检查 $DIR 目录下是否存在 Tomcat 文件。
    • 如果不存在,则显示错误信息并退出。
    • 如果已经存在 Tomcat 目录,则显示 Tomcat 已安装的消息并退出。
    • 如果不存在 Tomcat 目录,则创建目录并解压 Tomcat 文件到该目录。
    • 创建一个指向具体 Tomcat 版本的符号链接 tomcat
    • 添加 Tomcat 的 bin 目录到 PATH 环境变量。
    • 创建一个名为 tomcat 的系统用户(如果尚未存在)。
    • 向 Tomcat 的配置文件添加 JDK 的路径。
    • 更改 Tomcat 目录的所有权为 tomcat 用户和组。
    • 创建一个 systemd 服务单元文件 tomcat.service,以便通过 systemd 管理 Tomcat。

最后调用 install_jdkinstall_tomcat 函数来分别安装 JDK 和 Tomcat。目的是自动化在 CentOS 系统上安装和配置 JDK 和 Tomcat 的过程,减少了手动安装的复杂性和错误率。

脚本说明

1、上传下载好的安装包。

2、编写执行脚本,执行安装。

分享、在看与点赞
只要你点,我们就是胖友

来自: 运维 之 一键部署Tomcathttps://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247487494&idx=1&sn=dc0c8fc1401c9dc7472ce007bcdf2b8e&chksm=c315984af462115c224f48265296e720560a71f82c553bccc9f8affcd7b775f54270265a2a7f&token=355315523&lang=zh_CN#rd

相关推荐
2501_9071368211 小时前
手搓仓库管理系统Senbar-1.0.4(附带财务管理板块)
运维·服务器·软件需求
盟接之桥12 小时前
盟接之桥EDI软件:API数据采集模块深度解析,打造企业数据协同新引擎
java·运维·服务器·网络·数据库·人工智能·制造
时空潮汐13 小时前
神卓N600 NAS身份核验功能深度解析
linux·运维·网络·神卓nas·神卓n600 pro·家庭轻nas
小李独爱秋13 小时前
模拟面试:用自己的话解释一下lvs的工作原理
linux·运维·面试·职场和发展·操作系统·lvs
百锦再13 小时前
Jenkins 全面精通指南:从入门到脚本大师
运维·后端·python·servlet·django·flask·jenkins
隔壁老王的代码13 小时前
Jenkins的流水线详解
运维·servlet·jenkins
vx-Biye_Design13 小时前
servlet家政公司管理系统-计算机毕业设计源码01438
java·vue.js·spring·servlet·tomcat·maven·mybatis
珹洺13 小时前
Java-servlet(五)手把手教你利用Servlet配置HTML请求与相应
java·运维·服务器·前端·servlet·html·maven
一路往蓝-Anbo14 小时前
第 8 章:M33 领航——引导 A35 加载 U-Boot 与 Linux 内核
linux·运维·服务器·stm32·单片机·嵌入式硬件·网络协议
何中应14 小时前
从零搭建JumpServer
运维·堡垒机·jumpserver