1 前言
一个问题,一篇文章,一出故事。
笔者最近需要在生产环境安装部署Tomcat,于是重新整理Tomcat的部署方法。
本次部署把以往使用“daemon.sh”脚本控制服务的方法改为使用“startup.sh”与“shutdown.sh”脚本控制服务的方法,优点在于新的方式可以省略编译。
另外,如果你对之前的部署方法有兴趣,请参阅如下章节,
2 实操部分
2.1 系统环境
2.1.1 系统信息
OS = RHEL 9.x x86_64
IP Address = 10.168.0.157
Host Name = any.cmdschool.org
2.1.2 关闭SELinux
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2.1.3 配置防火墙
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload firewall-cmd --list-all
2.2 软件配置
2.2.1 安装JDK
请参阅以下文章安装JDK,
注:本章测试使用的安装包是“openjdk-18.0.1.1_linux-x64_bin.tar.gz”
2.2.2 下载安装包
cd ~ wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
2.2.3 配置运行用户
groupadd -g 91 tomcat useradd -u 91 -g 91 -d /usr/tomcat -s /sbin/nologin tomcat
2.2.4 部署tomcat目录
mkdir /usr/tomcat chown root:tomcat -R /usr/tomcat chmod 770 -R /usr/tomcat/
2.2.5 配置安装目录
cd ~ tar -xf apache-tomcat-10.0.27.tar.gz mv apache-tomcat-10.0.27 /usr/tomcat/ chown root:tomcat -R /usr/tomcat chmod 770 -R /usr/tomcat/ ln -s /usr/tomcat/apache-tomcat-10.0.27/logs/ /var/log/tomcat
2.3 配置Tomcat
2.3.1 配置环境变量
cat > /usr/tomcat/apache-tomcat-10.0.27/bin/setenv.sh << EOF JAVA_HOME='/usr/java/jdk-18.0.1.1' CATALINA_PID='/usr/tomcat/apache-tomcat-10.0.27/temp/tomcat.pid' CATALINA_HOME=/usr/tomcat/apache-tomcat-10.0.27 CATALINA_BASE=\${CATALINA_HOME} JAVA_OPTS='-Xms2048M -Xmx4096M -Xss512k -server -XX:+UseParallelGC' JAVA_OPTS='-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' TOMCAT_USER=tomcat EOF
2.3.1 手动测试服务启停
sudo -u tomcat /usr/tomcat/apache-tomcat-10.0.27/bin/startup.sh sudo -u tomcat /usr/tomcat/apache-tomcat-10.0.27/bin/shutdown.sh
然后,你可以使用如下命令查看启动的进程,
pgrep -u tomcat java -a
可见如下显示,
11710 /usr/java/jdk-18.0.1.1/bin/java -Djava.util.logging.config.file=/usr/tomcat/apache-tomcat-10.0.27/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/tomcat/apache-tomcat-10.0.27/bin/bootstrap.jar:/usr/tomcat/apache-tomcat-10.0.27/bin/tomcat-juli.jar -Dcatalina.base=/usr/tomcat/apache-tomcat-10.0.27 -Dcatalina.home=/usr/tomcat/apache-tomcat-10.0.27 -Djava.io.tmpdir=/usr/tomcat/apache-tomcat-10.0.27/temp org.apache.catalina.startup.Bootstrap start
然后,你可以使用如下命令查看运行的端口,
netstat -antp | grep `pgrep -u tomcat java`
可见如下显示,
tcp6 0 0 :::8080 :::* LISTEN 11710/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 11710/java
2.3.2 配置tomcat服务
cat > /usr/lib/systemd/system/tomcat.service << EOF [Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment="JAVA_HOME=/usr/java/jdk-18.0.1.1" Environment="CATALINA_PID=/usr/tomcat/apache-tomcat-10.0.27/temp/tomcat.pid" Environment="CATALINA_HOME=/usr/tomcat/apache-tomcat-10.0.27" Environment="CATALINA_BASE=/usr/tomcat/apache-tomcat-10.0.27" Environment="CATALINA_OPTS=-Xms2048M -Xmx4096M -Xss512k -server -XX:+UseParallelGC" Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom" ExecStart=/usr/tomcat/apache-tomcat-10.0.27/bin/startup.sh ExecStop=/usr/tomcat/apache-tomcat-10.0.27/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target EOF
修改完脚本后,你需要使用如下命令重载服务,
systemctl daemon-reload
你可使用如下命令控制服务和查询状态,
systemctl start tomcat.service systemctl status tomcat.service systemctl stop tomcat.service systemctl restart tomcat.service
测试完毕,建议你使用如下命令设置服务自动启动,
systemctl enable tomcat.service
2.3.3 浏览器测试
http://10.168.0.157:8080/
参阅文档:
=============================
http://blog.csdn.net/bebabyron/article/details/11852317
http://www.liaoshixiong.cn/java/centos7-tomcat-daemon.html
http://www.xuebuyuan.com/1361441.html
http://blog.csdn.net/centre10/article/details/50639693
没有评论