반응형

요즘은 WAR 배포 단위가 많아진것 같다.

 

회사에서도 홈페이지 개발해서 적용하는 프로젝트를 WAR를 배포하는데

 

여기서 문제가 발생했다.

 

1. 환경 : tomcat

2. server.xml 환경 설정을 사용하여 자동 unpack

 

몇주간 잘 사용하다가

 

STS(Spring Tool Suite) 기능 때문에 파일 업로드 살펴볼까 하고 보다가

 

다음과 같은 문제점을 발견했다.

 

1. 요즘은 보안상의 이유로 상위 디렉토리 자체를 접근하면 안됨

2. Tomcat의 자동 WAR unpack 기능을 쓰면 기존 폴더를 어디론가(?) 사라지고

   똑같은 이름의 폴더가 생성됨

 

해결 방안

1. Tomcat 자동 WAR unpack 기능 중지

2. 수동으로 기존 folder delete

3. 수동으로 WAR unpack 작업

 


 

1. Tomcat 자동 WAR unpack 기능 중지

- 파일 위치 : Tomcat 설치 위치/conf/server.xml 

- 변경 내용

  WAR 자동 deploy 설정 끄기 (unpackWARs 옵션 false) 

  <Host name="localhost" appBase="webapps"

           unpackWARs="false" autoDeploy="true">

 

※ 위 설정 적용을 위해 tomcat은 재기동 합니다. (그 이후에는 자동 WAR unpack 중지 / autoDeploy는 적용)

 

2.  수동으로 기존 Folder 삭제 및 3. 수동으로 WAR unpack 작업

unzip 을 사용하여 위치를 설정하는 방식으로 적용

다음과 같은 deploy 반영하는 쉘을 적용

 

WAR_DIR : tomcat 폴더 홈 디렉토리 + webapps 폴더 까지 경로

ex) /www/tomcat 에 tomcat이 설치됐다면

     WAR_DIR="/www/tomcat/webapps"

 

아래 예제는 unzip이 설치된 것으로 설정하였으니

 

반드시 unzip 명령어를 쳤을때 정상인 것을 확인하고 적용해야 함.

# delete old deploy folder
rm -rf ${WAR_DIR}/homepage/META-INF
rm -rf ${WAR_DIR}/homepage/org
rm -rf ${WAR_DIR}/homepage/WEB-INF

# WAR unpack
unzip ${WAR_DIR}/homepage.war -d ${WAR_DIR}/homepage/

 

반응형

+ Recent posts