Tomcat 8.x 升级到 8.5.77

命令操作用户以现场安装用户为准 (默认 isearch)

1. 基本准备

PS :主目录可以是 /isearch/、/test/ ,具体以现场实际情况为准,这里以 /test 为例
apache_tomcat_8.5.77.zip

## 1.上传tomcat压缩包到主目录(这里以/test为例)

## 2.解压文件 
## 2.1 unzip -d [需要解到的目录] [需要解压的文件]
unzip -d /test/ /test/apache-tomcat-8.5.77.zip

## 2.2 修改上传文件的权限
chown -R isearch:isearch /isearch/apache-tomcat-8.5.77
chmod +x -R /isearch/apache-tomcat-8.5.77

## 3. 复制文件
## 3.1 复制 server.xml文件(需要覆盖tomcat自带的文件)
cp /test/tomcat/conf/server.xml /test/apache-tomcat-8.5.77/conf/
## 3.2 复制webapp指向文件
cp -R /test/tomcat/conf/Catalina/ /test/apache-tomcat-8.5.77/conf/

## 4. 检查catalina.sh
## 4.1 检查旧版本tomcat的bin/catalina.sh文件中有没有下面的内容:

if [ "X$CATALINA_PID" = "X" ];then
	CATALINA_PID=${ISA_INSTALL_HOME}/isa/conf/tomcat/tomcat.pid
fi

## 4.2 如果能找到上面的内容,需要在升级后手动把上面的3行内容添加到新tomcat的bin/下面的catalina.sh里(参考下面的截图)
## 4.3 没有可忽略

Tomcat 8.x 升级到 8.5.77

2. 升级

## tomcat停止服务
/test/bin/tomcat.sh stop

## 进入安装目录
cd /test

## 查看软连接信息(方便还原使用)
 ll  /test/ |grep tomcat
 
# 结果如下(主要看“tomcat”软连接指向的路径)
drwxrwxr-x.  9 test test     4096 7月  19 2019 apache-tomcat-8.5.56
drwxrwxr-x.  9 test test     4096 7月  19 2019 apache-tomcat-8.5.77
-rw-r--r--.  1 test test 10379806 5月  31 19:26 apache-tomcat-8.5.77.zip
lrwxrwxrwx.  1 test test       26 5月   2 14:01 tomcat -> /test/apache-tomcat-8.5.56

## 修改软连接
ln -snf /test/apache-tomcat-8.5.77 /test/tomcat

## 查看修改后的结果(与修改前做对比,主要看“tomcat”软连接指向的路径)
[test@localhost test]$ ll |grep tomcat
drwxrwxr-x.  9 test test     4096 5月  31 19:32 apache-tomcat-8.5.56
drwxrwxr-x.  9 test test     4096 5月  31 19:32 apache-tomcat-8.5.77
-rw-r--r--.  1 test test 10379806 5月  31 19:26 apache-tomcat-8.5.77.zip
lrwxrwxrwx.  1 test test       20 5月  31 19:50 tomcat -> /test/apache-tomcat-8.5.77

##启动tomcat
/test/bin/tomcat.sh start

3. 启动问题报错解决

Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [] due to a StackOverflowError. Possible 
root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies.

此错误可直接修改 conf/catalina.properties 文件,把tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\改成tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*,\

4. 修复 AJP 端口漏洞

## 编辑server.xml
vi /test/tomcat/conf/server.xml
## 注释AJP配置(如下图,如果已经注释,可忽略)

Tomcat 8.x 升级到 8.5.77

5. 还原

PS : 还原的时候注意还原成之前的版本号,下面是还原成 tomcat-8.5.56 的示例

## tomcat停止服务
/test/bin/tomcat.sh stop

## 进入安装目录
## 查看软连接信息(方便还原使用)
 ll  /test/ |grep tomcat
# 结果如下
drwxrwxr-x.  9 test test     4096 5月  31 19:32 apache-tomcat-8.5.56
drwxrwxr-x.  9 test test     4096 5月  31 19:32 apache-tomcat-8.5.77
-rw-r--r--.  1 test test 10379806 5月  31 19:26 apache-tomcat-8.5.77.zip
lrwxrwxrwx.  1 test test       20 5月  31 19:50 tomcat -> /test/apache-tomcat-8.5.77

## 修改软连接(这里是还原成之前的版本)
ln -snf /test/apache-tomcat-8.5.56 /test/tomcat

## 查看修改后的结果(与修改前做对比)
[test@localhost test]$ ll |grep tomcat
drwxrwxr-x.  9 test test     4096 7月  19 2019 apache-tomcat-8.5.56
drwxrwxr-x.  9 test test     4096 7月  19 2019 apache-tomcat-8.5.77
-rw-r--r--.  1 test test 10379806 5月  31 19:26 apache-tomcat-8.5.77.zip
lrwxrwxrwx.  1 test test       26 5月   2 14:01 tomcat -> /test/apache-tomcat-8.5.56

##启动tomcat
/test/bin/tomcat.sh start