[tomcat] 시스템 환경 변수

CJY·2023년 7월 19일
0

설정 문제

목록 보기
2/2

jenkins에 대해 알아보려고 실습하는 중
.war파일을 기존 tomcat서버에 배포해보려 했다.

다운로드

https://tomcat.apache.org/ 에서 톰캣 9.x버전을 다운로드 받았다.


내 host OS는 윈도우라서 installer를 다운받아도 되지만 zip을 받아 실행해봤다.

이후 압축을 풀고 내가 원하는 경로에 이동시켰다.

톰캣 설정

윈도우 기준 cmd창으로 톰캣이 있는 경로로 이동했다.

  • cd {파일경로} : {파일경로}로 현재 디렉토리 이동
  • dir : 현재 위치 디렉토리 프린트

위 명령어를 잘 활용하면 원하는 위치까지 갈 수 있을 것이다.

포트번호 변경

원하는 위치에 왔다면 아래 명령어를 통해 비쥬얼 스튜디오 코드로 편하게 코드를 수정할 수 있다.

code .

.은 보통 all을 나타낸다. 현재 경로를 통으로 연다는 뜻이겠다.


server.xml파일에서 69번째 줄쯤에 포트가 선언돼있따.

원하는 포트로 바꿔주면 된다. 나는 그냥 8081을 사용했다. 인텔리제이 스프링 부트 기본 포트랑 충돌이 생길 때 혹은 생기기 전마다 바꾸는 것보다 그냥 로컬 톰캣을 8081로 바꾸는게 편할 것이라 생각됐다.

매니저 접근 경로

  1. webapps/host-manager/META-INF/context.xml
  2. webapps/manager/META-INF/context.xml

    1번, 2번 파일에서 공통적으로 작업을 해줘야한다.


바꾸기 전

!-- -- 추가
xml에서 주석처리하는 방법이다.

설정대로라면 로컬호스트에서만 매니저 접근이 가능한 설정인데 나중에 배포해서 원격 접근하기 위해 해당 내용을 주석처리했다.

유저 추가


conf/tomcat-users.xml에서 추가할 수 있다.

나는 위와 같이 코드를 추가했다. 역할이 궁금하면 위에 주석으로 잘 설명돼있다.

실행/종료

실행 명령은 다음과 같다.

.\bin\startup.bat

아파치톰캣 경로에 들어가서 실행하는 명령문인데, 이진파일에 들어가서 윈도우이기 때문에 배치 파일을 실행하는 것이다.

종료 명령은 다음과 같다.

.\bin\shutdown.bat

문제 발생

내가 설정한대로 실행이 안되는 것을 발견했다. 하지만 다행히 cmd창에서 톰캣의 버전이 파일이름으로 잘 나와있었고, 나는 9점대 버전을 새로 다운받았지만 8점대 버전이 실행되는 것을 확인할 수 있었다.

그리고 충돌이 발생했는지 종료 명령이 듣질 않아서 프로세스를 강제로 종료하는 방법을 사용했다. 방법은 아래와 같다.

netstat: 실행중인 port 찾기

netstat -a -o : 실행중인 port 표시, 프로세스id(pid) 표시

taskkill /f /pid 1234: 1234 프로세스id(pid) kill하기

해결 방법

이전에 내가 자바를 로컬에 다운받으면서 그 파일 안에 톰캣 8버전대를 다운받았던 것 같다. 그런 동시에 시스템 환경 변수 설정을 해놨는데 이름은 CATALINA_HOME이었다. 톰캣 startup 배치 파일이 환경 변수를 통해 톰캣을 실행한다는 사실을 깨달았다.

그래서 환경 변수를 지우고 다시 실행했다.

다행히 문제 없이 잘 동작했다.

profile
열심히 성장 중인 백엔드

2개의 댓글

comment-user-thumbnail
2023년 7월 19일

글이 많은 도움이 되었습니다, 감사합니다.

1개의 답글