[백업][가리사니] 스프링 4 입문강의 : 6. 리눅스 서버에 배포
eclipse, linux, mysql, spring, tomcat

이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.

스프링 4 입문강의

서론

이전 장에서는 우분투 리눅스에 개발환경을 설정하는 방법을 진행하였습니다. 그럼 이번 시간에는 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. 웹으로 배포

4. maven 으로 배포

  • STS 을 열고 first 프로젝트 선택 pom.xml 을 엽니다.
  • 사이에 다음과 같은 코드를 추가합니다. ``` xml
org.apache.maven.plugins maven-war-plugin false org.apache.tomcat.maven tomcat7-maven-plugin 2.2 http://아이피주소:8080/manager/text /first tomcat tomcat-test
- 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 !!
  1. 실행
    • http://아이피/SimpleComment/ 실행
    • 아래와 같이 작동하면 DB까지 모두 성공입니다. 3강에서 쓰인 이미지를 재활용한 것이니… 주소는 http://아이피/SimpleComment/ 로 가정합니다…