0) 기존 tomcat 백업 후 진행
 
cp -ar /opt/tomcat /opt/tomcat_20220211
 
1) instance 생성 및 권한 설정
 
[root@vtk-cs /opt]# useradd -g tomcat -s /usr/sbin/nologin instance1
 
[root@vtk-cs /opt/tomcat]# cp -a conf /home/instance1/
[root@vtk-cs /opt/tomcat]# cp -a webapps /home/instance1/
[root@vtk-cs /opt/tomcat]# mkdir /home/instance1/logs
[root@vtk-cs /opt/tomcat]# mkdir /home/instance1/work
[root@vtk-cs /opt/tomcat]# mkdir /home/instance1/bin
[root@vtk-cs /opt/tomcat]# mkdir /home/instance1/temp
 
[root@vtk-cs /home]# chown instance1:tomcat -R /home/instance1
 
drwx------  6 instance1  tomcat  106 2022-02-11 11:19 instance1
 
2) startup.sh 생성
 
vim /home/instance1/bin/start.sh
 
#!/bin/sh
 
export  CATALINA_HOME=/opt/tomcat
 
export  CATALINA_BASE=/home/instance1
 
export  CATALINA_OPTS="-Denv=product -Denv.servername=server1"
 
cd $CATALINA_HOME/bin
 
./startup.sh
 
3) shutdown.sh 생성
 
vim /home/instance1/bin/shutdown.sh
 
#!/bin/sh
 
export  CATALINA_HOME=/opt/tomcat
 
export  CATALINA_BASE=/home/instance1
 
export  CATALINA_OPTS="-Denv=product -Denv.servername=server1"
 
cd $CATALINA_HOME/bin
 
./shutdown.sh
 
4) 포트가 겹치지 않도록 server.xml 포트 수정
 
<Server port="8105" shutdown="SHUTDOWN">
ㄴ 8005에서 8105으로 수정
<Connector port="8180" protocol="HTTP/1.1"
ㄴ 8080에서 8180으로 수정
redirectPort="81443" />
ㄴ 8443에서 81443으로 수정
port="8109"
redirectPort="81443" />
ㄴ 8009, 8443 에서 8109, 81443으로 수정
 
5) 스크립트 파일 실행권한 추가
 
[root@vtk-cs /home/instance1]# chmod +x *.sh
 
-rwxr-xr-x 1 root      root    252 2022-02-11 11:45 shutdown.sh
-rwxr-xr-x 1 root      root   1463 2022-02-11 11:43 start.sh
 
6) 실행
 
[root@vtk-cs /home/instance1/bin]# ./startup.sh    
Using CATALINA_BASE:   /home/instance1
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /home/instance1/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.8.0/jre
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   -Denv=product -Denv.servername=server1
Tomcat started.
 
7) 실행 프로세스 확인
 
<기존>
[root@vtk-cs /home/instance1]# ps -ef | grep tomcat
root      7207     1  0 04:17 ?        00:00:49 /usr/lib/jvm/java-1.8.0/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
-Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start
 
<변경 후>
[root@vtk-cs /home/instance1/bin]# ps -ef | grep tomcat
root     30694     1 49 14:01 pts/0    00:00:09 /usr/lib/jvm/java-1.8.0/jre/bin/java -Djava.util.logging.config.file=/home/instance1/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Denv=product -Denv.servername=server1 -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
-Dcatalina.base=/home/instance1 -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/home/instance1/temp org.apache.catalina.startup.Bootstrap start
 
8) 권한 변경
 
8-1) 스크립트 수정
ㄴ root 권한이 아닌 tomcat 권한으로 실행
#cd $CATALINA_HOME/bin
#./startup.sh
ㄴ 주석 처리
su - tomcat -c $CATALINA_HOME/bin/startup.sh
 
8-2) 실행시 에러 발생
[root@vtk-cs /home/instance1/bin]# ./startup.sh
-bash: /opt/tomcat/bin/startup.sh: Permission denied
 
8-3) 권한 수정 후 조치 완료
 
[root@vtk-cs /opt]# chown -R tomcat:tomcat tomcat
 
[root@vtk-cs /home/instance1/bin]# ./startup.sh
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.8.0/jre
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

 

+ Recent posts