[백업][가리사니] 스프링 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를 쓰고 루트권한으로 찾아보시기 바랍니다.
  • 사이에 다음 코드를 추가합니다.
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat-test" roles="manager-gui,manager-script"/>

설명

  • manager-gui 웹사이트에서 웹페이지를 통한 관리 옵션.
  • manager-script 텍스트기반의 곧 활용하게될 메이븐 배포를 위해 필요. 여기까지 완료되셨다면 톰켓을 재시작합니다.
sudo service tomcat8 restart

3. 웹으로 배포

4. maven 으로 배포

  • STS 을 열고 first 프로젝트 선택 pom.xml 을 엽니다.
  • 사이에 다음과 같은 코드를 추가합니다.
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-war-plugin</artifactId>
	<configuration>
		<failOnMissingWebXml>false</failOnMissingWebXml>
	</configuration>
</plugin>
<plugin>
	<groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<version>2.2</version>
	<configuration>
		<url>http://아이피주소:8080/manager/text</url>
		<path>/first</path>
		<username>tomcat</username>
		<password>tomcat-test</password>
	</configuration>
</plugin>

5. 톰켓 기본 경로잡기

이 부분의 내용이 부실하고 자세히 쓰기엔 강의 주제와 떨어지는 것 같아 별도의 강의로 작성했습니다. 자세한 원리가 알고싶다면 톰켓 버추얼 호스팅 + server.xml 설정 를 참고해주세요.

톰켓 버추얼 호스팅 + server.xml 설정 호스트 설정을 통해 http://아이피:8080/first/ 에서 http://아이피/ 형태로 바꾸도록 하겠습니다.

  • sudo vim /etc/tomcat8/server.xml
  • Connector 태그를 찾아 port 를 80으로 바꾸어줍니다.
  • Host 태그 아래 다음과 같이 Context 를 추가 합니다.
<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
  1. 실행