tomcat 8.5.57 사용중인데 취약한 버전이므로 버전업데이트 요청이 들어와서 작업하게 되었다.
마이너업데이트란 8.5.57에서 8.5.81처럼, 큰 틀은 톰캣 8.5버전이지만 세세하게 변경되는 사항들이 있으면 맨 뒤에 숫자가 커지면서 업데이트 되어 내놓는것을 말한다.
이미 운영중인 프로그램이기때문에 마이너업그레이드를 진행하기로 하였다.
현재 버전을 보는 방법은 아래와 같이 입력하게되면
톰캣위치/bin/version.sh
버전 정보가 나오게 된다.
8.5.81로 변경하는 방법은 간단하다.
1. https://tomcat.apache.org/download-80.cgi
Apache Tomcat® - Apache Tomcat 8 Software Downloads
Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions
tomcat.apache.org
2. 위 사이트에 접속해서
노란색영역 tar.gz 오른쪽 마우스 눌러서 링크 복사
3. 톰캣 다운로드를 위한 아래와 같은 과정 진행
설치
# yum install wget
...
Is this ok [y/d/N] : y
...
톰캣최신버전 업데이트받을 위치 이동해서 아래와 같이 다운로드
$ cd /home
$ wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.81/bin/apache-tomcat-8.5.81.tar.gz
tar.gz 압축풀기
$ tar -zxvf apache-tomcat-8.5.81.tar.gz
기존라이브러리 백업
$ mv /home/www-apache-tomcat-8.5.57/lib /home/www-apache-tomcat-8.5.57/lib_back
기존톰캣에 업데이트된 라이브러리만 교체
$ cp -r /home/apache-tomcat-8.5.81/lib /home/www-apache-tomcat-8.5.57/
최신라이브러리를 넣어준 기존 톰캣디렉토리명을 최신버전인 8.5.81로 변경해주기
$ mv /home/www-apache-tomcat-8.5.57 /home/www-apache-tomcat-8.5.81
4. 톰캣 버전 8.5 수동 업그레이드시 lib 폴더만 갈아껴주고 재시작을 하면된다는 말이 있는데, 내 경우에는 재시작시 아래와 같은 오류가 발생했다
12-Aug-2022 11:04:34.860 심각 [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8553]] org.apache.catalina.LifecycleException: 구성요소 [Connector[HTTP/1.1-8553]]을(를) 초기화하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) at org.apache.catalina.core.StandardService.initInternal(StandardService.java:571) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:874) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.startup.Catalina.load(Catalina.java:646) at org.apache.catalina.startup.Catalina.load(Catalina.java:669) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472) Caused by: java.lang.NoSuchMethodError: org.apache.tomcat.util.buf.UriUtil.isAbsoluteURI(Ljava/lang/String;)Z at org.apache.tomcat.util.file.ConfigFileLoader.getInputStream(ConfigFileLoader.java:77) at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:198) at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:207) at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:282) at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:246) at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:106) at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:72) at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:205) at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1221) at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1234) at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:230) at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:633) at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:80) at org.apache.catalina.connector.Connector.initInternal(Connector.java:1112) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) ... 12 more
5. lib폴더 뿐만아니라 bin폴더에 있는 gz파일들이랑 jar파일들도 옮겨주고 재시작하면 업데이트가 완료된다.
(주의할 것은 bin폴더 gz파일와 jar파일만 옮기고 bin폴더 통째로 옮기지 않기. catalina.sh파일 등 설정이 필요할 파일들이 있기때문)
기존 bin 백업
$ mv /home/www-apache-tomcat-8.5.81/bin /home/www-apache-tomcat-8.5.81/bin_back
wget로 다운받아서 압축 풀은 새 톰캣 bin으로 이동
$ cd /home/apache-tomcat-8.5.81/bin
기존톰캣에 업데이트된 라이브러리만 교체
$ cp *.jar /home/www-apache-tomcat-8.5.81/bin
$ cp *.tar.gz /home/www-apache-tomcat-8.5.81/bin
6. 그리고나서 바꿔준 파일들을 교체해준 bin폴더와 lib폴더의 파일들 권한들도 기존 파일들 권한이랑 비교해서 동일하지않으면 권한을 맞춰준다.
7. 마지막으로 톰캣 재시작
/home/www-apache-tomcat-8.5.81/bin/shutdown.sh
/home/www-apache-tomcat-8.5.81/bin/startup.sh
끝!
'개발 > 리눅스' 카테고리의 다른 글
리눅스 disk full이 참 (0) | 2022.10.07 |
---|---|
리눅스 로그인 실패 이력 로그 보는방법/설정하는 방법 (0) | 2022.09.26 |
리눅스 openssl 업데이트 방법 (0) | 2022.08.10 |
openssl 적용한 후 haproxy적용하는 방법 (0) | 2022.04.07 |
방화벽 설정 방법 / 포트 허용 / IP 허용 (0) | 2022.02.25 |