前言
由于项目管理需要,欲在服务器上搭建一个敏捷开发工具JIRA服务,这里我选择的是解压版的JIRA
发文前最新版本:atlassian-jira-software-7.12.1.tar.gz 内置Tomcat
问题描述
配置完成后(端口默认8080,建议修改下端口号,方法与修改Tomcat端口类似,修改解压目录下/conf/server.xml文件)
第一次启动是成功的。今天发生错误,需要重启JIRA的时候,发现输入./stop-jira.sh时,它却把服务器上的一个Tomcat给停止掉了,而JIRA服务本身没有影响。
猜想,解压版的JIRA是内置Tomcat的,会不会是两个Tomcat发生冲突了呢?
解决办法
于是,对JIRA的相关文件进行修改,添加环境变量
具体如下:
JIRA内置Tomcat服务的相关文件修改
- 修改pid配置路径(默认会和Tomcat冲突)
cd到JIRA解压的bin目录下,找到setenv.sh文件,vim编辑
将这里面的CATALINA_BASE和CATALINA_HOME改成CATALINA2_BASE和CATALINA2_HOME
博主的服务器是已经装了两个Tomcat所以后面加的数字改成了3,这个不影响,只要和后面统一就可以。这里推荐大家可以使用相关工具进行批量修改,以免遗漏。
- 修改catalina.sh脚本
同样cd到JIRA解压的bin目录下,找到catalina.sh文件,vim编辑
和上步操作类似,将这里面的CATALINA_BASE和CATALINA_HOME改成CATALINA2_BASE和CATALINA2_HOME
- 环境变量配置
输入命令:
vim /etc/profile
修改之前:JAVA,Tomcat的环境变量配置(本机装了两个Tomcat服务)
###JAVA ###
export JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk1.8.0_181/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$PATH
###Tomcat 8.5###
export CATALINA_HOME=/usr/local/tomcat8.5
export CATALINA_BASE=/usr/local/tomcat8.5
export PATH=$PATH:$CATALINA_BASE/bin:$PATH
###Tomcat 9.0###
export CATALINA2_HOME=/usr/local/tomcat9.0
export CATALINA2_BASE=/usr/local/tomcat9.0
export PATH=$PATH:$CATALINA2_BASE/bin:$PATH
修改之后:新增JIRA的环境变量配置,这里的CATALINA3_HOME和CATALINA3_BASE的值为JIRA的解压根目录,与上文对应,你们在操作的时候应该为CATALINA2_HOME和CATALINA2_BASE
###JAVA ###
export JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk1.8.0_181/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$PATH
###Tomcat 8.5###
export CATALINA_HOME=/usr/local/tomcat8.5
export CATALINA_BASE=/usr/local/tomcat8.5
export PATH=$PATH:$CATALINA_BASE/bin:$PATH
###Tomcat 9.0###
export CATALINA2_HOME=/usr/local/tomcat9.0
export CATALINA2_BASE=/usr/local/tomcat9.0
export PATH=$PATH:$CATALINA2_BASE/bin:$PATH
###Jira 7.12.1###
export CATALINA3_HOME=/usr/local/atlassian-jira-software-7.12.1-standalone
export CATALINA3_BASE=/usr/local/atlassian-jira-software-7.12.1-standalone
export PATH=$PATH:$CATALINA3_BASE/bin:$PATH
保存,输入命令:source /etc/profile 更新环境变量配置
如此设置完成后,JIRA和Tomcat的冲突解决,JIRA能够正常关闭和启动了。
总结
由于博主有配置多个Tomcat的经验,所以在发生冲突时,第一反应便是去修改JIRA内置Tomcat的catalina.sh文件,但是修改之后发现问题并未解决,虽然启动脚本可以定位正确,但是PID却还是使用的Tomcat8.5的PID,于是顺藤摸瓜,去修改了setenv.sh文件里的CATALINA_BASE和CATALINA_HOME的配置。
每个Tomcat在启动的时候会在work目录下生成一个catalina.pid文件
同样JIRA属于内置Tomcat,也会有这个目录
修改了setenv.sh文件之后,才解决了进程冲突的问题。