一、Tomcat 下载
官网:Apache Tomcat® - Welcome!
1.1.下载安装包
下载安装包:
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.102/bin/apache-tomcat-9.0.102.tar.gz
安装 javajdk。
yum install java-1.8.0-openjdk.x86_64 -y
/etc/alternatives/jre_openjdk/ 是 OpenJDK JRE 的符号链接管理目录,通过 update-alternatives 实现版本切换。其内容指向实际安装的 JRE 路径,便于系统统一管理 Java 环境。
/etc/alternatives/jre_openjdk/ 目录作用
-
alternatives 系统:Linux 系统通过 update-alternatives 工具管理多个可替换的软件版本,例如 Java、Python 等。
-
JRE 指向:jre_openjdk 条目指向当前系统默认的 OpenJDK JRE(Java Runtime Environment)。
-
符号链接管理:该目录下的文件实际是符号链接,指向具体的 JRE 安装路径。
/etc/alternatives/jre_openjdk/
├── bin/ # 符号链接到JRE的二进制目录(如java、javac等)
├── include/ # 符号链接到JRE的头文件
├── lib/ # 符号链接到JRE的核心库(rt.jar等)
├── man/ # 符号链接到JRE的手册页
└── ...其他资源文件...
1.2.解压
因为 tomcat 直接可用,所以直接解压到相应的目录。
tar xzf apache-tomcat-9.0.102.tar.gz -C /usr/local
1.3.启动
进入目录,创建软连接,便于操作,启动服务。
cd /usr/local/
ln -s apache-tomcat-9.0.102 tomcat # 创建软连接
cd /usr/local/tomcat/bin/ # 进入二进制目录
bash startup.sh # 运行启动脚本,启动服务
浏览器可访问到 Tomcat,安装成功。
二、配置 Tomcat 启动脚本
在 /usr/local/tomcat/conf/tomcat.conf 文件中设置 JAVA_HOME=/etc/alternatives/jre_openjdk/,其作用和背后的原因主要有以下几点:
作用
-
指定 Java 运行环境路径:JAVA_HOME 是一个环境变量,Tomcat 作为 Java 应用服务器,需要知道 Java 运行时环境(JRE)或者 Java 开发工具包(JDK)的安装路径。通过设置 JAVA_HOME,Tomcat 可以找到 Java 解释器(java 命令)以及相关的类库,从而能够正常启动和运行基于 Java 编写的 Web 应用程序。
-
确保一致性:当在系统中存在多个 Java 版本时,明确指定 JAVA_HOME 可以确保 Tomcat 始终使用预期的 Java 版本来运行,避免因默认 Java 版本的改变而导致的兼容性问题或运行错误。
选择 /etc/alternatives/jre_openjdk/ 路径的原因
-
系统级 Java 版本管理:在许多 Linux 系统中,/etc/alternatives 目录是 update-alternatives 工具的一部分,这个工具用于管理系统中可替换的软件版本。/etc/alternatives/jre_openjdk/ 通常是一个符号链接,它指向系统当前默认的 OpenJDK JRE 安装目录。通过使用这个符号链接,即使系统中 Java 版本发生了更新或切换,/etc/alternatives/jre_openjdk/ 会自动更新到新的默认 Java 版本路径,从而保证 Tomcat 能够使用最新的默认 Java 环境,而无需手动修改 JAVA_HOME 的值。
-
灵活性和兼容性:使用 /etc/alternatives/jre_openjdk/ 路径可以让系统管理员方便地在不同的 Java 版本之间进行切换,而不会影响 Tomcat 的配置。例如,如果需要将系统的 Java 版本从 OpenJDK 11 升级到 OpenJDK 17,只需要使用 update-alternatives 工具更新默认的 Java 版本,/etc/alternatives/jre_openjdk/ 会自动指向新的 Java 安装目录,Tomcat 可以继续正常运行。
vim /usr/local/tomcat/conf/tomcat.conf # 创建文件写入以下内容
JAVA_HOME=/etc/alternatives/jre_openjdk/
2.1.封装 Tomcat 启动和停止操作
作用
-
封装 Tomcat 启动和停止操作
-
/usr/bin/tomcat 文件实际上是一个简单的 shell 脚本,它的主要作用是将 Tomcat 的启动和停止操作进行封装。脚本中使用了 case 语句来根据用户传入的第一个参数(即 $1)来决定执行相应的操作:
-
提供统一的操作接口
-
通过这个脚本,用户可以使用更简洁、统一的命令来启动和停止 Tomcat。例如,用户可以直接在命令行中输入 tomcat start 来启动 Tomcat,输入 tomcat stop 来停止 Tomcat,而不需要每次都记住并输入完整的 startup.sh 或 shutdown.sh 脚本路径。
为什么要提前编辑此文件
-
1. 方便 systemd 服务管理
-
2. 便于后续维护和扩展
-
如果后续需要对 Tomcat 的启动或停止操作进行修改,例如在启动前添加一些环境变量的设置,或者在停止后进行一些清理工作,只需要修改 /usr/bin/tomcat 脚本即可,而不需要修改 systemd 服务单元文件。这样可以提高代码的可维护性和可扩展性。
-
-
3. 符合脚本封装和模块化的思想
-
将相关的操作封装到一个脚本中,符合编程中模块化和封装的思想,使代码结构更加清晰,易于管理。同时,也方便在不同的场景下复用这个脚本,例如在自动化部署脚本中使用。
-
vim /usr/bin/tomcat
#!/bin/bash
case $1 instart)/usr/local/tomcat/bin/startup.sh;;stop)/usr/local/tomcat/bin/shutdown.sh
esac
给脚本设置可执行权限。
chmod +x /usr/bin/tomcat
2.2.编写系统服务脚本
编写系统服务脚本。
vim /lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
ExecStart=/usr/bin/tomcat start
ExecStop=/usr/bin/tomcat stop
PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
创建系统用户。
useradd -s /sbin/nologin -M tomcat
修改目录文件权限。
chown -R tomcat.tomcat /usr/local/tomcat/
重新加载 systemd 服务管理器配置。
systemctl daemon-reload
三、启动服务
systemctl start tomcat.service
查看服务状态。
浏览器可访问。