CentOS 安装 tomcat 并设置 开机自启动

CentOS 安装 tomcat 并设置 开机自启动

下载jdk和tomcat

bash 复制代码
curl https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
curl https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.15/bin/apache-tomcat-10.1.15.tar.gz

解压jdk和tomcat并修改目录名称

bash 复制代码
tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local/
tar -zxvf apache-tomcat-10.1.15.tar.gz -C /usr/local/
mv /usr/local/jdk-21.0.1/ /usr/local/jdk-21
mv /usr/local/apache-tomcat-10.1.15 /usr/local/tomcat-10

设置tomcat.pid文件生成

其中tomcat.pid文件本身不存在,设置之后,启动Tomcat会自动生成

bash 复制代码
vi /usr/local/tomcat-10/bin/catalina.sh
bash 复制代码
# 定位文件第140行找到 PRGDIR=`dirname "$PRG"` 并在该行下追加以下内容
CATALINA_PID="/usr/local/tomcat-10/bin/tomcat.pid"

配置环境变量

bash 复制代码
vi /etc/profile.d/my_env.sh
bash 复制代码
export JAVA_HOME=/usr/local/jdk-21

export CATALINA_BASE=/usr/local/tomcat-10
export CATALINA_HOME=/usr/local/tomcat-10

export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_BASE/bin:$CATALINA_HOME/bin
bash 复制代码
source /etc/profile.d/my_env.sh

编写开机启动服务

bash 复制代码
cd /usr/lib/systemd/system
vi tomcat-10.service
bash 复制代码
[Unit]
 
Description=tomcat-server
 
After=network.target
 
 
 
[Service]
 
Type=forking
 
# 因为服务启动时,是不会读取全局变量的(/etc/profile),因此全局变量中配置的属性是读取不到的需要注意。
 
# 所以需要在这里配置Tomcat 启动需要的JDK,指定JDK路径
 
Environment="JAVA_HOME=/usr/local/jdk-21"
 
 
 
# 此文件是在第一步时配置的,如果type是后台运行,建议将此属性加上,指定pid。
 
PIDFile=/usr/local/tomcat-10/bin/tomcat.pid
 
 
 
# 需要注意的就是下面这一行,如果路径错了,那就无法自动启动,下面会有图文解释
 
# 整个 ExecStart 脚本,相当于是让系统开机时自动帮你在终端输入等号后面的命令
 
ExecStart=/usr/local/tomcat-10/bin/startup.sh
 
ExecReload=/usr/local/tomcat-10/bin/shutdown.sh
 
ExecReload=/bin/kill -s HUP $MAINPID
 
PrivateTmp=true
 
 
 
[Install]
 
WantedBy=multi-user.target
bash 复制代码
systemctl daemon-reload
systemctl start tomcat-10.service 
systemctl enable tomcat-10.service 

设置防火墙端口放行

bash 复制代码
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload 

重启系统

bash 复制代码
reboot
浏览器访问测试

http://服务器IP地址:8080

相关推荐
byte轻骑兵5 分钟前
【BlueZ 】蓝牙 SDAP 协议入门:BlueZ 中设备服务发现的基础逻辑
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
mounter62521 分钟前
GCCRS 突破与 Rust 入核:Linux 工具链的重大变革
linux·开发语言·rust·linux kernel·kernel
竹枝溪24 分钟前
Tomcat与Servlet全套小白教程
java·servlet·tomcat·cookie·filter·session·listener
lxw20230271162 小时前
k8s安装部署(利用ansible)
linux·kubernetes·ansible
爱和冰阔落3 小时前
【Linux】Ctrl+C 到底做了什么?从键盘、kill 到 alarm,一次讲清信号的产生
linux·运维·c++·安卓
JavaPub-rodert3 小时前
Linux 下部署 MongoDB:从安装、配置到生产环境使用
linux·运维·mongodb
我不会插花弄玉3 小时前
11.Linux进程信号【由浅入深-Linux】
linux·进程·信号
Doraemomo4 小时前
Linux编程-socket网络编程之TCP
linux·网络·tcp/ip
Brilliantwxx4 小时前
【Linux】 进程(3)深度解析:从查看进程到进程状态
linux·服务器·网络·c++
我星期八休息4 小时前
Linux—五种IO模型与非阻塞IO
linux·运维·服务器·网络·数据库·网络协议