[백업][가리사니] 스프링 4 입문강의 : 6. 리눅스 서버에 배포
eclipse, linux, mysql, spring, tomcat
이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
스프링 4 입문강의
- 1. Spring Starter Project 를 이용한 JSTL 예제
- 2. Spring Starter Project 를 이용한 Mustache 예제
- 3. 데이터베이스 연동 ( MySQL / 하이버네이트 )
- 4. 롬복 / Lombok !!
- 5. 우분투 리눅스 Java / Tomcat / MySQL 설치
- 6. 리눅스 서버에 배포
서론
이전 장에서는 우분투 리눅스에 개발환경을 설정하는 방법을 진행하였습니다. 그럼 이번 시간에는 war 파일을 배포하는 것을 해보도록하겠습니다.
이 강의는 1 ~ 5강까지 모두 완료했다는 전제하에 진행하도록 하겠습니다.
1. MySQL 설정
이전 장에서 설치한 MySQL에 3 장에서 했던 것과 똑같이 데이터베이스, 테이블, 유저를 설정해주겠습니다.
- 3장 참고
먼저 우분투에 아래와 같이 타이핑합니다.
> sudo mysql -u root -p mysql> CREATE SCHEMA `first`CHARACTER SET utf8 COLLATE utf8_general_ci; mysql> GRANT ALL PRIVILEGES ON first.* TO 'first'@'%' IDENTIFIED BY 'first'; mysql> flush privileges; mysql> CREATE TABLE `first`.`simple_comment` ( `comment_no` INT NOT NULL AUTO_INCREMENT, `text` TEXT NOT NULL, `datetime` DATETIME NOT NULL DEFAULT now(), PRIMARY KEY (`comment_no`)); mysql> quit
- first 라는 스키마(데이터베이스)를 만들고
- first 라는 계정을 만들고 first 데이터베이스 권한을 줌 (이 계정의 암호도 first)
- flush privileges 는 계정이나 설정값 처럼 즉시 적용되지 않는 것들을 적용하도록 하는 명령입니다.
- 테이블을 만들어줍니다.
2. 톰켓 매니저 설정
sudo vim /etc/tomcat8/tomcat-users.xml
- tomcat8 버전 apt-get으로 설치한 경우의 경로임으로 버전에 따라 경로가 다를 수 있습니다.
- 기본적으로 tomcat-users.xml에 보기권한이 없으니… 찾기 어렵다면 su를 쓰고 루트권한으로 찾아보시기 바랍니다.
-
사이에 다음 코드를 추가합니다. ``` xml
설명
- manager-gui 웹사이트에서 웹페이지를 통한 관리 옵션.
- manager-script 텍스트기반의 곧 활용하게될 메이븐 배포를 위해 필요.
여기까지 완료되셨다면 톰켓을 재시작합니다.
``` shell
sudo service tomcat8 restart
- 위 과정이 끝났다면 데스크탑으로 아래 주소에 접속합니다.
- http://아이피주소:8080/manager/html
- 아이디 암호는 위에서 설정한 tomcat / tomcat-test 입니다.
3. 웹으로 배포
- 기억속에서 잊혀진.. STS(이클립스)를 오픈합니다.
- 1강 참조 : /2016/04/20/%EB%B0%B1%EC%97%85-%EA%B0%80%EB%A6%AC%EC%82%AC%EB%8B%88-%EC%8A%A4%ED%94%84%EB%A7%81-4-%EC%9E%85%EB%AC%B8%EA%B0%95%EC%9D%98-1.-Spring-Starter-Project-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-JSTL-%EC%98%88%EC%A0%9C.html
- Package Explorer -> jstl -> 오른쪽 클릭 -> Export…
- Web -> WAR file -> 적당한 곳에 jstl.war 로 저장합니다.
- 접속 : http://아이피주소:8080/manager/html
- WAR file to deploy 에 jstl.war 를 올리고 deploy !!
- 접속 : http://아이피주소:8080/jstl/main 다음과 같은 문구가 나오면 성공한겁니다. 안녕 jstl !! 하지만 매번 이렇게 웹으로 배포하면 상당히 귀찮아집니다. 그래서 first 프로젝트는 메이븐 배포를 해보도록 하겠습니다.
4. maven 으로 배포
- STS 을 열고 first 프로젝트 선택 pom.xml 을 엽니다.
-
의 사이에 다음과 같은 코드를 추가합니다. ``` xml
- tomcat8을 사용하더라도 이글의 작성 시점으로 tomcat7 만 작동합니다.
- STS 상단바 ▶(run) 의 ▼ 를 눌러 Run Configurations 클릭
- Maven Build -> 우클릭 -> New
- Name : First Deploy (이름은 편한대로 지으시면됩니다...)
- Base directory : ${workspace_loc:/first} (그대로 따라하셨다면 이경로일겁니다.)
- Goals : tomcat7:redeploy (위 설명대로 톰켓 8이지만 명령어는 7밖에안됩니다.)
- Run 을 누릅니다.
- 접속 : http://아이피:8080/first/main
다음과 같은 문구가 나오면 성공한겁니다.
안녕 mustache !!
======================================================
메이븐을 통한 배포시에 아래와 같은 오류가 날경우.
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- 참조 : [/2016/04/28/%EB%B0%B1%EC%97%85-%EA%B0%80%EB%A6%AC%EC%82%AC%EB%8B%88-%EB%A9%94%EC%9D%B4%EB%B8%90-%EB%B0%B0%ED%8F%AC%EC%8B%9C-No-compiler-is-provided-in-this-environment.-%EC%98%A4%EB%A5%98.html](/2016/04/28/%EB%B0%B1%EC%97%85-%EA%B0%80%EB%A6%AC%EC%82%AC%EB%8B%88-%EB%A9%94%EC%9D%B4%EB%B8%90-%EB%B0%B0%ED%8F%AC%EC%8B%9C-No-compiler-is-provided-in-this-environment.-%EC%98%A4%EB%A5%98.html)
======================================================
# 5. 톰켓 기본 경로잡기
이 부분의 내용이 부실하고 자세히 쓰기엔 강의 주제와 떨어지는 것 같아 별도의 강의로 작성했습니다.
자세한 원리가 알고싶다면 톰켓 버추얼 호스팅 + server.xml 설정 를 참고해주세요.
[톰켓 버추얼 호스팅 + server.xml 설정](/2016/07/09/%EB%B0%B1%EC%97%85-%EA%B0%80%EB%A6%AC%EC%82%AC%EB%8B%88-%ED%86%B0%EC%BC%93-%EB%B2%84%EC%B6%94%EC%96%BC-%ED%98%B8%EC%8A%A4%ED%8C%85-+-server.xml-%EC%84%A4%EC%A0%95.html)
호스트 설정을 통해 http://아이피:8080/first/ 에서 http://아이피/ 형태로 바꾸도록 하겠습니다.
- sudo vim /etc/tomcat8/server.xml
- Connector 태그를 찾아 port 를 80으로 바꾸어줍니다.
- Host 태그 아래 다음과 같이 Context 를 추가 합니다.
``` xml
<Host name="localhost" 생략>
...
<Context docBase="first" path="/" reloadable="true"/>
...
</Host>
- 이대로 실행하면 작동하지 않습니다.
- 데비안 계열은 기본적으로 시스템 포트(예약포트: 1023 이내 포트)가 막혀있습니다.
- 그럼 아래와 같은 방법으로 포트를 열어보겠습니다.
sudo apt-get install authbind sudo touch /etc/authbind/byport/80 sudo chmod 500 /etc/authbind/byport/80 sudo chown tomcat8 /etc/authbind/byport/80 sudo vim /etc/default/tomcat8
- 스크롤을 내리다보면 #AUTHBIND=no 혹은 #AUTHBIND=yes 가 보입니다. AUTHBIND=yes
- 위와같이 # 주석을 제거해줍니다. (no라면 당연히 yes로 고칩니다…)
sudo service tomcat8 restart
- http://아이피/main 다음과 같은 문구가 나오면 성공한겁니다. 안녕 mustache !!
- 실행
- http://아이피/SimpleComment/ 실행
- 아래와 같이 작동하면 DB까지 모두 성공입니다. 3강에서 쓰인 이미지를 재활용한 것이니… 주소는 http://아이피/SimpleComment/ 로 가정합니다…