Tomcat patch 톰켓 마이너버전 패치 해보기
안녕하세요 오늘은 리눅스환경에서 tomcat patch/tomcat 업그레이드 하는법을 알아보겠습니다.
tomcat 취약점 해결버전이나 tomcat 상위버전이 필요할 경우 업그레이드가 필요합니다.
마이너 업그레이드 방법 천천히 따라 해보세요.
tomcat patch 버전 다운로드
Apache Tomcat® - Welcome!
The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the Jakarta
tomcat.apache.org
tomcat 공식홈페이지 링크입니다.
마이너 패치할 버전을 다운로드 하시고 os에 업로드 하시면 됩니다.
테스트 환경 입니다.
apache-tomcat-9.0.85 기존 사용버전
apache-tomcat-9.0.99 패치할 버전
1. 패치전 백업(중요)
pwd
/home/hunhee/tomcat_patch_test
#기존 버전 통으로 백업
#logs 파일이 너무크다면 logs파일은 따로 백업 안해도됩니다.
cp -rp apache-tomcat-9.0.85 apache-tomcat-9.0.85_back

패치할때 백업은 엄청 중요합니다.
운영환경에서 패치가 원활이 되지않았을 경우 일단 원복후 상황파악을 하는것이 중요합니다.
2.패치 진행
패치 방식에는 기존 사용 톰켓에서 환경설정을 패치버전에 덮어쓰는것과
패치버전의 바이너리를 기존 사용 톰켓 버전에 덮는 방식이 있는데
운영환경이면 기존 사용톰켓에 덮어쓰는 방식은 장애가 날 수 있으니
환경설정파일을 패치버전에 옮겨 패치하는 방법으로 해보겠습니다.
##bin 디렉토리
pwd
/home/hunhee/tomcat_patch_test/apache-tomcat-9.0.85/bin
#setenv.sh 파일 패치버전으로 카피etenv.sh 파일 패치버전으로 카피
cp setenv.sh /home/hunhee/tomcat_patch_test/apache-tomcat-9.0.99/bin
#setenv.sh 파일이 없고 catalina.sh 파일에 환경설정이 들어가있다면
#패치버전의 catalina.sh 파일에 환경설정 직접 추가해줘야합니다.
#직접 vi 편집기로 열어서 복사 붙여넣기
##conf 디렉토리
pwd
/home/hunhee/tomcat_patch_test/apache-tomcat-9.0.85/conf
#server.xml context.xml web.xml 설정파일 패치버전으로 카피
cp server.xml context.xml web.xml /home/hunhee/tomcat_patch_test/apache-tomcat-9.0.99/conf
##lib 디렉토리
pwd
/home/hunhee/tomcat_patch_test/apache-tomcat-9.0.85/lib
#기본 톰켓 라이브러리 외 추가한 라이브러리가 있으면 카피(jdbc, 외부라이브러리 등)
cp ojdbc8.jar /home/hunhee/tomcat_patch_test/apache-tomcat-9.0.99/lib
##webapp
pwd
/home/hunhee/tomcat_patch_test/apache-tomcat-9.0.85/webapps
#webapps 에 소스를 넣은경우에는 webapp안의 소스파일를 이동시켜줘야합니다.
cp -r webapps /home/hunhee/tomcat_patch_test/apache-tomcat-9.0.99
#중요!
아래 부분만 유의하시면 이상없이 패치할 수 있습니다.
-bin 디렉토리
setenv.sh 파일 카피
setenv.sh 존재 하지않을시 기존 catalina.sh 확인
수정된 부분만 추출
새 버전 catalina.sh에 수동으로 반영
-conf 디렉토리
conf/ (server.xml web.xml context.xml)
-lib 디렉토리
기본 lib는 절대 덮지 말기
커스텀 jar만 옮기기
-webapps 디렉토리
myapp.war 나 app 앱 디렉토리등 소스를 직접 webapps 에 넣어 사용중이면
통으로 패치버전으로 옮기기
위의 경우 기존 구동중인 톰켓에서 패치버전으로 복사 하는방식 이므로
사전에 작업 해놓고 작업시간이 되었을때 기존 tomcat 중지 패치버전 기동 으로
최소한의 시간으로 작업 할 수 있습니다.
3. 기존 tomcat 중지후 tomcat 패치버전 기동
#기존톰켓 중지
pwd
/home/hunhee/tomcat_patch_test/apache-tomcat-9.0.85/bin
./shutdown.sh
#패치버전 기동
pwd
/home/hunhee/tomcat_patch_test/apache-tomcat-9.0.99/bin
./startup.sh
#ps -ef |grep tomcat 으로 프로세스 확인
#/home/hunhee/tomcat_patch_test/apache-tomcat-9.0.99/logs 로 이동후
#catalina.out 파일 열어서 이상없는지 확인
패치버전의 프로세스 확인
그리고 logs안의 catalina.out 파일을 열어서 잘 구동되는지 확인하면되겠습니다.
개발서버라면 상관없지만 운영서버면 백업은 무조건적으로 진행하시고
메이저 버전 패치면 호환이 안되는경우도 있으니 유의 하시길 바랍니다.
'WEB,WAS 및 기술' 카테고리의 다른 글
| tomcat session-timeout 설정 및 우선순위 (0) | 2026.03.11 |
|---|---|
| systemd 등록 systemctl 명령어로 프로세스 제어 (0) | 2026.02.06 |
| Apache 서버 버전 숨기기 ServerTokens, ServerSignature 설정 Nginx tomcat 포함 (0) | 2026.02.03 |
| [WEB/WAS] Nginx nginx.conf 설정 알아보기 (0) | 2026.02.02 |
| (13)Permission denied: AH00072: make_sock: could not bind to address [::]:80 Apache 자주 보이는 에러들 (0) | 2026.01.30 |