运行 Tomcat10.1.x 需要 jdk11 及以上版本,这点要注意。Here we go!!!
下载最新版本 tomcat-10.1.2,命令:
wget -c https://downloads.apache.org/tomcat/tomcat-10/v10.1.2/bin/apache-tomcat-10.1.2.tar.gz
下载最新版本 jdk-19
wget -c https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.tar.gz
解压 tomcat 到目录/opt
下:
tar -xzvf apache-tomcat-10.1.2.tar.gz -C /opt/
解压 jdk 到目录/usr/local/
下:
tar -xzvf jdk-19_linux-x64_bin.tar.gz -C /usr/local/
tomcat 运行只需要 jre 就足够了。使用jlink
将 jre 生成到 tomcat 目录下:
/usr/local/jdk-19.0.1/bin/jlink --add-modules java.base,java.rmi,java.xml,java.management,java.sql,java.desktop,java.naming,java.security.jgss,java.instrument --output /opt/apache-tomcat-10.1.2/jre
注意:根据需要添加所需的模块,目前添加的模块只是足够运行 tomcat10.1.x
将环境变量和 Java 等参数配置到setenv.sh
下:
cat > /opt/apache-tomcat-10.1.2/bin/setenv.sh <<"EOF"
JRE_HOME=/opt/apache-tomcat-10.1.2/jre
CLASSPATH=$JRE_HOME/lib
PATH=$PATH:$JRE_HOME/bin
JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8 -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Djava.security.egd=file:/dev/urandom"
CATALINA_PID="/var/run/tomcat.pid"
EOF
说明:这样是不是很绿色很环保?一个文件搞定。
上面配置完后,我们就可以运行tomcat了,可以单独命令运行,也可以后台服务运行。
执行以下命令运行 Tomcat:
/opt/apache-tomcat-10.1.2/bin/catalina.sh run
运行情况:
Using CATALINA_BASE: /opt/apache-tomcat-10.1.2
Using CATALINA_HOME: /opt/apache-tomcat-10.1.2
Using CATALINA_TMPDIR: /opt/apache-tomcat-10.1.2/temp
Using JRE_HOME: /opt/apache-tomcat-10.1.2/jre
Using CLASSPATH: /opt/apache-tomcat-10.1.2/jre/lib:/opt/apache-tomcat-10.1.2/bin/bootstrap.jar:/opt/apache-tomcat-10.1.2/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Using CATALINA_PID: /var/run/tomcat.pid
27-Nov-2022 00:10:16.004 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.2
27-Nov-2022 00:10:16.009 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Nov 9 2022 15:47:04 UTC
27-Nov-2022 00:10:16.009 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.2.0
…
可以看到 tomcat 运行起来了。
如果想随机启动关闭,可以这样设置:
cat > /usr/lib/systemd/system/tomcat.service <<"EOF"
[Unit]
Description=apache-tomcat-10.1.2
Requires=network.target local-fs.target
After=network.target local-fs.target
[Service]
Type=forking
User=root
OOMScoreAdjust=-1000
PIDFile=/var/run/tomcat.pid
ExecStart=/opt/apache-tomcat-10.1.2/bin/catalina.sh start
ExecStop=/opt/apache-tomcat-10.1.2/bin/catalina.sh stop
TimeoutSec=60
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
使生效:
systemctl enable --now tomcat
查看状态:
systemctl status tomcat
通过浏览器访问:
http://192.168.56.22:8080/
如果在外面 Web 打不开,查看以下是否是防火墙阻止了端口被外部访问:
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
There you go!!