물에 살고싶은 개발자

[tomcat+Linux] 이클립스로 war 파일 만들어 배포 후 tomcat restart 하는법 본문

Spring Framework

[tomcat+Linux] 이클립스로 war 파일 만들어 배포 후 tomcat restart 하는법

돼지사랑 2019. 6. 12. 11:27

언제나 그랫듯, 이 글은 내가 후에 다시보기 위한 글임을 미리 밝힌다.


결론부터 한줄요약 하고 시작!


이클립스 이용해서 war 파일로 export 하고 해당 파일을 FTP든 git이든 이용해서 서버 tomcat 경로에 배포 후 service tomcat7 restart 하면 끝!

+@ service tomcat7 restart 했는데 퍼미션관련 오류메시지가 주륵주륵 뜨게되면 앞에 sudo같은 root 권한을 주는 명령어를 추가하자



그럼 본격적으로 설명설명에 들어감


일단 프로젝트의 서버환경이 어떤지 알아야한다. 예를들면 같은 Linux라도 ubuntu인지 centos인지 AWS(?!)인지와 웹서버는 node.js인지 spring인지 등등 명령어 글로벌세팅은 해두었는지 깃을 쓰는지 파일질라를 쓰는지(사실 이건 덜중요ㅋㅋ) 파악해야한다.

보통은 기존에 있던 백앤드 개발자에게 인수인계를 받을 사항이다.


여기서는 AWS , tomcat7 , spring 프로젝트 , 글로벌명령어는 service , FileZilla 인것으로 가정하고 글을 쓰겠다.


일단 이클립스에서 war 파일로 export 하는법


1. 이클립스에서 프로젝트를 연다.

2. 필요한 내용을 수정

3. 아래 스샷처럼 file -> export -> web 아래에 있는 war 선택 



4. Web project에 수정한 자신의 프로젝트를 선택 Destination에는 war파일을 저장할 경로 선택

(참고 : 아래 사진의 경우는 블로그 글작성을 위해 임시로 다른 프로젝트명을 써서 Module name is invalid. 라고 뜨는것이고,

정상적인 경우에는 Export Web project to the local file system. 라고 뜬다.)


아래 옵션은

Export source files : 소스파일을 함께 export 할것인지 묻는것. 해당 옵션을 선택하면 소스파일도 함께 배포한다

Overwrite existing file : 지정한 저장경로에 같은 이름으로 파일이 있을경우 덮어쓸것인지 확인 

(이미 있을경우엔 이 옵션을 선택하지 않으면 export가 되지 않는다.)



5. 잠시 기다린다. 기다리면 이클립스가 지정한 저장경로에 war파일을 뿜! 하고 내놓는다.



그럼 이제 war 파일이 나왓으니 war파일을 서버에 보내야 한다.

FileZilla를 켜 war파일을 배포할 서버에 접속 후 기존에 깔려있는 프로젝트의 위치로 이동한다.


기존 war파일의 위치를 모를 경우엔 tomcat7의 디폴트 경로로 가보던지 검색을 하면된다.

디폴트 경로는 /usr/local/tomcat7/webapps 이므로 여기에 가보면 war파일이 있을것이다(아마도)

없다면 putty 같은걸로 해당 서버에 접속 후 find / -name '*.war' 를 입력하면 어딨는지 찾아줄 것이다.


war파일을 서버에 보냈다면, 이제 putty 차례다. tomcat7을 restart 해야 수정사항이 적용되기 때문이다.

아주 심플하다. service tomcat7 restart 하면 끝이다.(여기서 restart는 되는데 퍼미션관련 에러가 뜨면 앞에 sudo같은 root권한 명령어를 붙여주자 sudo service tomcat7 restart 요렇게)

그 후 접속을 해보든 뭘하든 수정사항을 확인하기만 하면 된다.


하지만 여기서 끝나면 아쉬우니 명령어 세팅이 안되어있거나 다른 명령어일 경우 찾는 요령도 팁으로 쓰고 끝내기로 하겠다.

(사실 선임자에게 묻는게 제일 빠르긴 하다. 아니면 사내 문서를 확인하거나..나의 경우는 둘다 못해서 직접 찾았다.)


일단 알고있는 글로벌 명령어를 전부 쳐본다.

apache , service , tomcat , tomcat7 , forever 등등 여러가지가 있을 것이다.


그중 command not found 가 아닌 help글이나 이런게 우후죽순 나오는 명령어가 있을 것이다.

추가로 웹서버명을 쳐보자. 예를들면 service tomcat7 이런식이다. 

친절하게도 Usage: /etc/init.d/tomcat7 {start|stop|restart|status|version} 이런식으로 사용법이 나온다.

그럼 당첨이다. tomcat7이라면 status로 현재 상태를 확인 후 restart를 입력해주자.


그게 아니라 다른 웹서버들이더라도 조금만 검색하면 명령어에 대한건 충분히 나올테니 알아서 찾는걸로 ^-'


끝!



Comments