运维 之 一键部署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

相关推荐
Danileaf_Guo31 分钟前
256台H100服务器算力中心的带外管理网络建设方案
运维·服务器
拾贰_C2 小时前
【Linux | Windows | Terminal Command】 Linux---grep | Windows--- findstr
linux·运维·服务器
虹科网络安全3 小时前
艾体宝洞察 | 利用“隐形字符”的钓鱼邮件:传统防御为何失效,AI安全意识培训如何补上最后一道防线
运维·网络·安全
石像鬼₧魂石4 小时前
Kali Linux 网络端口深度扫描
linux·运维·网络
alengan4 小时前
linux上面写python3日志服务器
linux·运维·服务器
Evan芙4 小时前
搭建nexus服务,实现本地仓库、代理仓库
java·nginx·tomcat
yBmZlQzJ4 小时前
免费内网穿透-端口转发配置介绍
运维·经验分享·docker·容器·1024程序员节
JH30734 小时前
docker 新手入门:10分钟搞定基础使用
运维·docker·容器
小卒过河01045 小时前
使用apache nifi 从数据库文件表路径拉取远程文件至远程服务器目的地址
运维·服务器·数据库